如何克服java堆空间的OutOfMemoryError?

时间:2012-02-29 02:59:51

标签: java openoffice.org openoffice-calc openoffice-writer openoffice-basic

使用JOpenDoc API处理ODS表时,获取Java堆空间的OutOfMemoryError。处理表包含6000条记录。根据JProfiler,如果记录更多,消耗内存空间会变得更多。如何在不使用-X参数增加JVM大小的情况下消除此错误。这是我的java代码导致outofmemory。

SpreadSheet spreadSheet=SpreadSheet.createFromFile(new File("document.ods")); //memory-35 MB
Sheet sheet1=spreadSheet.getSheet(1); // consumed memory - 47 MB
Sheet sheet2=spreadSheet.getSheet(2); // consumed memory - 59 MB
Sheet sheet3=spreadSheet.getSheet(3); // outofmemory error since the default size is 64 MB

1 个答案:

答案 0 :(得分:2)

您需要使用-Xmx增加内存或减少内存使用量。例如,您是否需要一次装入所有3张纸?如果没有,请释放对它的引用(例如sheet1 = null),垃圾收集器将处理它。