【发布时间】:2016-06-15 14:00:56
【问题描述】:
我想在Map<String, MagicObject> 中存储大量字符串,以便可以快速访问MagicObjects。此 Map 的条目太多,以至于内存正在成为瓶颈。假设 MagicObjects 无法优化,那么在这种情况下我可以使用的最有效的地图类型是什么?我目前正在使用以下内容:
gnu.trove.map.hash.TCustomHashMap<byte[], MagicObject>
【问题讨论】:
-
如果另一张地图突然使用更少的内存,我会感到惊讶,但我对优化应用程序的内存使用不太熟悉。
-
你不会通过切换数据结构来改变JVM内存模型。
-
为什么不用 THashMap ?
-
@duffymo 实际上你可以根据使用的类型节省内存:java-performance.info/memory-consumption-of-java-data-types-2(表在末尾)
-
谢谢你,@dognose。我的说法仍然正确:您没有更改 JVM 内存模型。 “大量的字符串”仍然会占用他们将要占用的内容。但我不知道这个图书馆。 Trove 是开源的还是购买的库?你和它有关联吗? (完全公开和透明。)
标签: java string memory collections memory-optimization