LRU LinkedHashMap的限制大小我想創建LinkedHashMap中,將根據可用內存限制其大小(即當freeMemory + (maxMemory - allocatedMemory)
低於一定閾值)。這將用作緩存的一種形式,可能使用「最近最少使用」作爲緩存策略。根據可用內存
我擔心的是,雖然allocatedMemory還包括(I假設)未垃圾收集的數據,並且因此將過度估計所使用的存儲器的量。我擔心這可能會產生意想不到的後果。
例如,LinkedHashMap的可能會保持刪除項目,因爲它認爲沒有足夠的可用內存,但可用內存也不會增加,因爲這些刪除的項目不會被垃圾立即收集。
有沒有人有這種類型的事情的經驗?我的擔憂是否值得?如果是這樣,任何人都可以提出一個好方法?
我要補充一點,我也希望能夠「鎖定」的高速緩存,基本上說:「好了,從現在開始,不要刪除,因爲內存使用問題什麼」。
你在這裏有什麼應用?如果不知道背景的意圖是什麼,很難想出一個好的答案。你的HashMap是緩存還是什麼? – jprete 2009-10-29 20:17:50
jprete,我試圖澄清這一點 - 你是對的,它的緩存 – sanity 2009-10-29 20:24:02
這是一個典型的例子,其中GC和java內存管理顯示了它真正的混亂面貌。在C++中這麼做會很簡單*。使用GC,你不能執行像刪除或免費的命令。 – 2009-10-29 20:57:21