我遇到Apache POI的性能问题.我已经阅读了FAQ,它指的是性能测试.我已经通过注销和4gb堆运行此测试,我无法让测试运行得超过22秒.
这是我在运行测试: http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java
该FAQ说,如果我不能得到这个测试中在3秒50,000行和50列说:"问题是你的环境"中运行.我已经阅读了围绕网络的其他评论,指的是禁用poi日志记录并增加堆大小,但似乎没有任何帮助.
我还可以检查什么来修复我的环境?
机器规格(个人台式机):
CPU: Intel i7 8-cores RAM: 16GB OS: Windows 7 64bit JDK: 1.8.0_66 POI: 3.13 JVM Params: -Xmx4g -Xms4g -Dorg.apache.poi.util.POILogger=org.apache.poi.util.NullLogger Command Arguments: XSSF 50000 50 0
我还要提一下,我使用的Apache POI罐子来自maven central
我在github上创建了一个测试项目,您可以在其中简单地克隆项目并运行:
mvn exec:java
我对我正在使用的参数进行了硬编码,因此您无需在命令行中输入任何特殊内容.文档说这应该在3秒内运行.
测试项目位于:https: //github.com/mikedehaan/poi-test
在我的机器上测试结果:
HSSF:2秒
SXSSF:5秒
XSSF:27秒
机器规格:
CPU: Intel i3-2100, 3.10 GHz, 4-cores RAM: 16GB OS: Windows 7 64bit JDK: 1.7.0_76
我进行了分析,发现XSSF
由于库xmlbeans
和poi-ooxml-schemas
库中的同步方法很慢.您可以通知poi开发人员并要求检查此案例.