我在使用Apache POI时遇到了性能问题。我已经阅读了FAQ,其中提到了一个性能测试。我关闭了日志记录并使用4GB堆运行了此测试,但无法使测试运行速度快于22秒。
这是我正在运行的测试: http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java FAQ中提到,如果我无法在50000行和50列下在3秒内运行此测试,则“问题出在您的环境上”。我已经阅读了网上其他评论,提到禁用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 jars来自于maven central 我在github上创建了一个测试项目,您可以简单地克隆该项目并运行:
mvn exec:java
我硬编码了我正在使用的参数,因此您不必在命令行上输入任何特殊内容。文档说这应该在3秒内运行。
测试项目位于这里: https://github.com/mikedehaan/poi-test
这是我正在运行的测试: http://svn.apache.org/repos/asf/poi/trunk/src/examples/src/org/apache/poi/ss/examples/SSPerformanceTest.java FAQ中提到,如果我无法在50000行和50列下在3秒内运行此测试,则“问题出在您的环境上”。我已经阅读了网上其他评论,提到禁用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 jars来自于maven central 我在github上创建了一个测试项目,您可以简单地克隆该项目并运行:
mvn exec:java
我硬编码了我正在使用的参数,因此您不必在命令行上输入任何特殊内容。文档说这应该在3秒内运行。
测试项目位于这里: https://github.com/mikedehaan/poi-test
-Xms
或-Xmx
来设置堆大小?此外,您尝试过将第四个程序参数设置为0
(例如HSSF 50000 50 0
)来运行测试吗? - Gord Thompson