Skip to content

wangguanquan/eec-benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

介绍

本项目用于Eec性能测试,分别将以1k, 5k, 10k, 50k, 100k, 500k, 1000k 7个数量级进行读写测试

Eec 外还加入了 FastexcelEasyexcel 进行对比测试

测试文件统一保存在excel-simple目录下,请不要随意改变日志输出格式,否则将导致Reporter运行时异常。

特别申明:性能测试不代表实际使用场景,实际使用时基本不会超过1万条数据,所以在选择Excel工具时不要参考压测结果,不要参考压测结果,不要参考压测结果

编译

执行build脚本

Writer比较

执行writer脚本,其中warmup是一个预热方法,统计时将被忽略。如果对某个工具感兴趣也可以复制脚本中的某行来执行

除Easy外其它两款工具均使用inlineStrshared两种模式测试,测试数据包含int, long, date和15个字符串,其中5列纯英文,10列中英混合,使用shared生成的文件名包含shared标记

Reader比较

执行reader脚本,将Excel行数据转对象统计行数,这里并不会收集对象放到内存,所以不影响内存使用。

如果传入文件名则会读取指定文件名,否则将读取excel-simple目录下的所有文件

查看测试统计结果

执行完测试后使用report脚本查看统计结果,性能比较是按每秒处理多少单元格来计算,单元格是excel最小单位用它计算比单纯按行比较更精准

2023-09测试结果

  • eec: 0.5.11
  • fastexcel: 0.15.7
  • easyexcel: 3.3.2

只比较运行时必要依赖,所有依赖包均放到各自*-lib下可自行比较

+------+------+--------+
| Eec  | Fast |  Easy  |
+------+------+--------+
| 0.9m | 1.7m |  21.5m |
+------+------+--------+

测试机CPU:Intel i7-1051U @ 1.80GHz,内存:16G

平均耗时:读写总耗时/读写次数
Cells/s: 平均每秒处理多少单元格
+----------+------+------+------+------+--------+--------+--------+----------+
|  TOOLS   |  1k  |  5k  | 10k  | 50k  |  100k  |  500k  | 1000k  | Cells/s  |
+----------+------+------+------+------+--------+--------+--------+----------+
|   Eec(w) |  122 |  356 |  595 | 2756 |   5504 |  27364 |  62339 |   319620 |
|  Fast(w) |  195 |  645 | 1127 | 5155 |  10879 |  50341 | 108775 |   178597 |
|  Easy(w) |  583 | 1338 | 1703 | 5720 |  11374 |  53585 | 105293 |   176250 |
|   Eec(r) |   32 |  115 |  183 |  922 |   1812 |   9222 |  22418 |   905820 |
|  Fast(r) |   70 |  225 |  279 | 1357 |   2653 |  15775 |  28128 |   653525 |
|  Easy(r) |  111 |  312 |  499 | 2400 |   4896 |  24337 |  47316 |   396480 |
+----------+------+------+------+------+--------+--------+--------+----------+
|                              ↓Shared String↓                               |
+----------+------+------+------+------+--------+--------+--------+----------+
|   Eec(w) |  302 | 1110 | 2644 | 7037 |  11532 |  51317 | 102829 |   179068 |
|  Fast(w) |  143 |  574 | 1112 | 5626 |  12074 |  70770 | 223057 |   101016 |
|   Eec(r) |   52 |  316 |  259 | 1247 |   2546 |  13643 |  34518 |   602016 |
|  Fast(r) |  116 |  270 |  324 | 1544 |   3234 |  19962 |  44819 |   450467 |
|  Easy(r) |  218 | 1175 | 1749 | 6523 |  13542 |  68384 | 142516 |   135212 |
+----------+------+------+------+------+--------+--------+--------+----------+

性能比较:每秒处理单元格数量比较[A vs B = (A - B) / B]
+--------+--------------+--------------+--------------+
|        | Eec vs Fast  | Eec vs Easy  | Fast vs Easy |
+--------+--------------+--------------+--------------+
|  Write |      78.96%↑ |      81.34%↑ |       1.33%↑ |
|   Read |      38.61%↑ |     128.47%↑ |      64.83%↑ |
+--------+--------------+--------------+--------------+
|                   ↓Shared String↓                   |
+--------+--------------+--------------+--------------+
|  Write |      77.27%↑ |            - |            - |
|   Read |      33.64%↑ |     345.24%↑ |     233.16%↑ |
+--------+--------------+--------------+--------------+

说明

  1. 运行Reader测试之前请先执行Writer生成测试文件

About

eec, easyexcel, fastexcel benchmark

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published