我正在解析一个328kb的文本文件并将内容存储在java List中。
这是命令行(我应该在给定参数的情况下使用1GB ram。)
java -Xms128m -Xmx1024m -cp .:jars/* CentroidGenerator data/data.xml
但是我得到Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
这是代码,我已将其大部分用于调试:http://d.pr/pRxe 感谢
答案 0 :(得分:22)
嗯,这对我来说有点不对劲:
for (int i=0; i<centroids.size(); i++) {
Centroid centroid = new Centroid(...);
// Some other code here
centroids.add(centroid);
}
假设centroids
的大小为1.在循环的第一次迭代中,i
为0,小于1.您创建了Centroid
的新实例,将其添加到列表中,然后继续。现在i
是1,但现在centroids.size()
是2,所以你继续......等等。
基本上,在你的内存不足之前,这个循环不会停止。
我不清楚你在循环中尝试做什么,但你不想做 做的事情......