我目前正在研究一個編程相關的問題,我試圖製作一個海量的hashmap數據。數據的關鍵是實現hashCode()和equals(...)的CharSequence的自定義低內存實現,並且該值是Integer對象。推薦用於Java的低內存hashmap
在這個散列表中可能有成百上千的條目,我設法通過讓Integer成爲我希望散列的數據的文件中的指針,從而大大減少了對該值的內存使用量,但問題在於該關鍵字可能是幾十個字節(平均25個字節),並且密鑰需要在HashMap的默認實現中保存在內存中。
我需要一個具有低內存開銷的散列映射,並且可以將密鑰分頁到磁盤或者存儲密鑰的散列表示。如果密鑰本身被散列,那麼我會擔心散列衝突。
理想情況下,我希望能夠在每50MB堆空間(key中25個字節的一個字節數組和值部分中的Integer對象的一個字節數組)中存儲一百萬個條目。
有沒有人有低內存文件系統支持的地圖經過優化,以減少密鑰的足跡的經驗?
感謝,
克里斯
空間和時間往往處於折中關係。添加,搜索,刪除節點的性能/可擴展性要求是什麼?如果你只是想要低內存,你可以使用一個數組。 – 2010-03-05 06:34:05
像你想要的是一種內存數據庫? – 2010-03-05 07:06:05