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