在使用JOpenDoc API处理ODS工作表时,为Java堆空间获取OutOfMemoryError。处理表包含6000条记录。根据JProfiler,如果记录更多,则消耗的内存空间也会增加。如何在不增加带有-X参数的JVM大小的情况下摆脱此错误。这是导致内存不足的Java代码。

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

最佳答案

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

关于java - 如何克服OutOfMemoryError为Java堆空间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9492998/

10-10 11:21