使用 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 - 如何克服java堆空间的OutOfMemoryError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9492998/