java – Apache POI使用HSSF比XSSF快得多 – 下一步呢?
我使用Apache POI解析.xlsx文件时遇到一些问题 – 我收到了
java.lang.OutOfMemoryError:我部署的应用程序中的
Java堆空间.我只处理5MB和大约70,000行的文件,所以我怀疑从阅读其他问题是一些事情是不幸的.
如this comment所示,我决定用建议的变量运行SSPerformanceTest.java,看看我的代码或设置是否有问题.结果显示HSSF(.xls)和XSSF(.xlsx)之间有显着差异: 1)HSSF 50000 50 1:经过1秒钟 2)SXSSF 50000 50 1:经过5秒钟 3)XSSF 50000 50 1:经过15秒 FAQ具体说:
接下来,它说要运行我已经完成的XLS2CSV.java.在上面生成的XSSF文件(50000行和50列)中进行加载大约需要15秒 – 写入文件所需的时间相同. 我的环境有问题吗?如果有的话,我如何进一步调查? 来自VisualVM的统计数据显示在处理过程中使用的堆高达1.2Gb.当然这是太高了,因为在加工开始之前,这是一个额外的演出呢? 注意:上面提到的堆空间异常仅发生在生产(在Google App Engine上),而仅在.xlsx文件中发生,但是这个问题中提到的测试都已经在我的开发机器上运行了-Xmx2g.我希望如果我可以解决我的开发设置的问题,它将在部署时使用更少的内存. 来自应用引擎的堆栈跟踪:
解决方法
我正在面对同样的问题,使用Apache POI阅读庞大的.xlsx文件,我遇到了
excel-streaming-reader-github 该库用作围绕该流API的包装器,同时保留标准POI API的语法 该库可以帮助您阅读大文件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |