一尘不染

Apache POI性能

java

我在使用Apache POI时遇到性能问题。我已经阅读了有关性能测试的FAQ。我已经通过注销和4gb的堆运行了该测试,但我无法使测试的运行速度超过22秒。

这是我正在运行的测试:http
:
//svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java

FAQ说,如果我不能得到这个测试在50,000行和50列说:“问题是你的环境”下运行3秒。我已经在网上阅读了其他一些评论,这些评论都涉及禁用poi日志记录和增加堆大小,但是似乎没有任何帮助。

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

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

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

我还应该提到我正在使用的Apache POI罐来自Maven
Central

我已经在github上创建了一个测试项目,您可以在其中克隆项目并运行:

mvn exec:java

我对使用的参数进行了硬编码,因此您不必在命令行上输入任何特殊内容。文档说这应该在3秒内运行。

测试项目位于此处:https :
//github.com/mikedehaan/poi-test


阅读 664

收藏
2020-12-03

共1个答案

一尘不染

我的机器上的测试结果:

  • HSSF:2秒
  • SXSSF:5秒
  • XSSF:27秒

机器规格:

CPU:Intel i3-2100,3.10 GHz,4核
内存:16GB
操作系统:Windows 7 64bit
JDK:1.7.0_76

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

2020-12-03