终于有一款组件可以全面超越Apache POI( 三 )


终于有一款组件可以全面超越Apache POI

----终于有一款组件可以全面超越Apache POI//----


终于有一款组件可以全面超越Apache POI

----终于有一款组件可以全面超越Apache POI//----

·设置:计算和保存20,000*30个单元格的公式 , 结果如下:

·GcExcel用时不超过1S;ApachePOI则达到10S左右


终于有一款组件可以全面超越Apache POI

----终于有一款组件可以全面超越Apache POI//----

·打开并保存一个20.5MB的Excel文件 , 其中包含了许多数据、公式和单元格格式 , 结果如下:

·GcExcel用时不超过4.9S;ApachePOI则达到10S左右

·GcExcel内存消耗为72.1MB;ApachePOI为3518.2MB


终于有一款组件可以全面超越Apache POI

----终于有一款组件可以全面超越Apache POI//----


终于有一款组件可以全面超越Apache POI

----终于有一款组件可以全面超越Apache POI//----

结论

从以上结果可以看出 , GcExcel是目前为止速度最快、内存消耗最少的服务端电子表格组件 。

尽管ApachePOI是免费的 , 但它的速度和内存消耗远远达不到企业级项目的标准 , 这就是为什么我只选择100,000*30个单元格的原因 , 因为即使在1,000,000*30个单元格的情况下 , GcExcelJava仍旧可以平稳运行 。

除此之外 , 为了保证ApachePOI成功运行 , 还必须将JVM最小堆大小配置为4G , 否则它将抛出OutOfMemory异常 。 以下是build.gradle中的JVM配置:

applicationDefaultJvmArgs=["-Xms4096m","-Xmx8192m"]

大家可以从GitHub上下载这个测试项目:

https://github.com/GrapeCity/GcExcel-Java/tree/master/benchmark,并使用以下命令行运行它:

·onmac:./gradlewrun--args="double"//参数可以是double,string,date,formula,bigfile

·onwindows:gradlewrun--args="double"//参数可以是double,string,date,formula,bigfile

请注意 , 第一次运行会非常慢 , 因为它需要下载gradle和所有相关软件包 。

以上 , 就是GrapeCityDocuments与ApachePOI在功能和性能上的对比测试 , 从数据可见 , 无论是运行速度 , 还是内存消耗 , GrapeCityDocuments都要比ApachePOI表现的更为优秀 。