任务是计算输入文件中的单词数。
输入文件是每行8个字符,有10M行,例如:
aaaaaaaa
bbbbbbbb
aaaaaaaa
abcabcab
bbbbbbbb
...
输出是:
aaaaaaaa 2
abcabcab 1
bbbbbbbb 2
...
如果我将所有单词加载到内存中,将需要 80MB 内存,但在 os 系统中只有 60MB,我可以将其用于此任务。那么我该如何解决这个问题呢?
我的算法是使用map<String,Integer>
,但是 jvm 在线程“main”java.lang.OutOfMemoryError: Java heap space 中抛出异常。例如,我知道我可以通过设置 -Xmx1024m 来解决这个问题,但我想使用更少的内存来解决它。