【发布时间】:2011-05-04 01:58:15
【问题描述】:
我想将 1 亿个术语及其频率(在文本数据库中)存储到 HashMap <String, Double> 中。它给了我“内存不足”错误。我试图将堆空间增加到-Xmx15000M。但是它运行了半个小时,然后再次抛出相同的异常。我试图从中读取单词和频率的文件大小为 1.7GB。
任何帮助将不胜感激。
谢谢 :-)
【问题讨论】:
-
您运行的是 32 位还是 64 位 JVM?
-
你到底在做什么需要 1 亿个术语?您在为 Google 工作吗?
-
一开始为什么要把它存储在HashMap中呢?正如许多人建议您可以将其存储在数据库中一样,您可能想要映射减少它(Hadoop?)。虽然这完全取决于为什么 HashMap。
-
有多少不同的术语?如果有很多重复,那么虽然数据量对于内存来说太大了,但频率表仍然可能是一个合理的大小。那样的话,只是分阶段处理完整文件的问题……