Apache POI性能

Mik*_*aan 8 java performance apache-poi

我遇到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

dlo*_*tin 7

在我的机器上测试结果:

  • 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由于库xmlbeanspoi-ooxml-schemas库中的同步方法很慢.您可以通知poi开发人员并要求检查此案例.

  • 我在我的环境中看到了类似的结果.我相信你找到了答案.我在apache poi用户列表上分享了这些信息.希望他们回应.谢谢! (2认同)