我想在 DirectByteBuffer 中存储一个哈希映射(最多 1,000,000,000 个条目),我需要读取和写入条目。hashmap 将有一个字符串键和可序列化的对象。但是,如果将哈希映射作为一个整体序列化并将其存储为 Byte Buffer ,则每次我需要反序列化它都会导致堆内存出现问题。有没有其他方法可以将键值存储在 DirectByteBuffer 中,搜索键并以优化的方式检索值?PS:我需要一个 incache 解决方案,并且我需要从 java 堆中释放对象(这将是我的 hashmap 中的值),因为它们的数量很大。
问问题
759 次
1 回答
0
通过使用 DirectByteBuffer,您将使用本机内存。我是否正确假设您走这条路的原因是您不想将 1000000000 存储在堆内存中?如果您担心 java 内存使用情况,您可以设置 JVM 的最大堆大小来处理这个问题吗?(即 -Xmx )?最终结果应该是相同的,您不必担心本机内存。这是一篇讨论此http://viralpatel.net/blogs/jvm-java-increase-heap-size-setting-heap-size-jvm-heap/的文章
于 2013-09-04T04:10:55.733 回答