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

常见问题解答说,如果我不能让这个测试在3秒内运行,有50,000行和50列“问题在于您的环境”。 我已经阅读了围绕网络的其他评论,指的是禁用poi日志记录并增加堆大小,但似乎没有任何帮助。

我还可以检查什么来修复我的环境?

机器规格(个人台式机):

 CPU:Intel i7 8核
内存:16GB
操作系统:Windows 7 64位
 JDK:1.8.0_66
 POI:3.13
 JVM参数:-Xmx4g -Xms4g -Dorg.apache.poi.util.POILogger = org.apache.poi.util.NullLogger
命令参数:XSSF 50000 50 0

我还要提一下,我使用的Apache POIjar子来自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核
内存:16GB
操作系统:Windows 7 64位
 JDK:1.7.0_76

我进行了分析,发现由于xmlbeanspoi-ooxml-schemas库中的同步方法, XSSF很慢。 您可以通知poi开发人员并要求检查此案例。