如何在编码时利用更改JVM参数的优势?

问题描述

我正在分析数GB的文本,并建立最常用单词(出现次数)的频率图。自然地,当我的问题集从小规模测试扩展到实际的完整问题大小时,最终将我追加到StringBuilder的HashMap中会导致OutOfMemoryError:Java堆空间。除了我预计的HashMap最终会达到最大容量的问题之外。一位朋友提出了一种处理此类大型数据集的解决方案:保留StringBuilder对象和HashMap对象的数组,并在该对象即将达到最大容量时,向该数组添加一个对象,然后开始填充该对象,等等,这在理论上是可行的,但最终我需要全局结果(例如,找到所有合并单词的出现总数),这意味着我必须以某种方式在最后合并结果,然后对它们进行排序。

我寻找了OutOfMemoryError的解决方案,发现可以调整最大堆空间。这会影响ArrayLists或HashMaps或StringBuilders等对象的最大容量吗?如果我可以通过增加堆空间或通过其他一些JVM参数调整来利用我提供的大量处理能力和RAM +存储空间来使StringBuilders变大,那将非常有用。一般而言,对这个问题的任何建议也将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)