如何使用POI库在java中读取超过10张大型(95 + MB)excel工作簿,而不增加JVM(如-Xmx1G)。如果我们运行jar文件而不增加VM得到OutOfMemory错误。如何在编码本身中优化此问题而不是增加VM?
答案 0 :(得分:5)
没有聪明的“优化”可以让你继续使用当前的方法并使用更少的内存来运行。
您将需要更改程序,以便它不会将整个工作簿加载到内存中。
正如@ M.Deinum所指出的,Apache POI提供了一种处理Excel文件的替代方法,您可以在其中获得一系列解析器事件,而不是每个整个电子表格的内存中表示。从内存模型切换到基于事件的模型将需要对应用程序进行大量重新编码。但如果你负担不起记忆,你就没有其他实用的选择。