Magicodes.IE 在100万数据量下导入导出性能测试

原文作者:HueiFeng

前言

目前Magicodes.IE更新到了2.2.3,感谢大家的支持,同时建议大家在使用过程中如果遇到一些问题或者说需要一些额外的功能可以直接提issues,当然更建议大家提PR。

近期更新

2020.05.24
  • 【Nuget】版本更新到2.2.2

  • 【Excel导入】增加了stream导入扩展方法

  • 【Excel导出】增加了内容居中(单列居中、整表居中)

  • 【导出】对一些中间件代码进行了修复及优化

2020.05.16
  • 【Nuget】版本更新到2.2.1

  • 【PDF导出】对模板引擎进行升级更新

2020.05.12
  • 【Nuget】版本更新到2.2.0

  • 【Excel模板导出】支持导出字节

  • 【文档】Magicodes.IE Csv导入导出

  • 【Excel导入导出】修复标注的添加问题

  • 【导出】ASP.NET Core Web API 中使用自定义格式化程序导出Excel、Pdf、Csv等内容 #64

  • 【导入导出】支持使用System.ComponentModel.DataAnnotations命名空间下的部分特性来控制导入导出 #63

性能测试

电脑配置以及环境如下所示:

 
 
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.18363.836 (1909/November2018Update/19H2)
AMD Ryzen 5 3600X, 1 CPU, 12 logical and 6 physical cores
.NET Core SDK=5.0.100-preview.4.20258.7
  [Host]     : .NET Core 3.1.4 (CoreCLR 4.700.20.20201, CoreFX 4.700.20.22101), X64 RyuJIT
  Job-OONFAJ : .NET Framework 4.8 (4.8.4180.0), X64 RyuJIT
  Job-YIUEXF : .NET Core 2.2.8 (CoreCLR 4.6.28207.03, CoreFX 4.6.28208.02), X64 RyuJIT
  Job-LZHMKS : .NET Core 3.1.4 (CoreCLR 4.700.20.20201, CoreFX 4.700.20.22101), X64 RyuJIT
​
IterationCount=5  LaunchCount=1  WarmupCount=1  

Excel & Csv 导出

Excel导出如下所示:

MethodJobRuntimeRowsCountMeanErrorStdDev
ExportExcelAsByteArrayTestJob-OONFAJ.NET 4.6.110000153.1 ms5.52 ms0.85 ms
ExportExcelAsByteArrayTestJob-YIUEXF.NET Core 2.210000138.0 ms1.53 ms0.40 ms
ExportExcelAsByteArrayTestJob-LZHMKS.NET Core 3.110000143.0 ms9.86 ms1.53 ms
ExportExcelAsByteArrayTestJob-OONFAJ.NET 4.6.11200001,904.2 ms98.37 ms25.55 ms
ExportExcelAsByteArrayTestJob-YIUEXF.NET Core 2.21200001,662.8 ms132.04 ms20.43 ms
ExportExcelAsByteArrayTestJob-LZHMKS.NET Core 3.11200001,636.1 ms99.64 ms25.88 ms
ExportExcelAsByteArrayTestJob-OONFAJ.NET 4.6.12400003,688.3 ms58.52 ms15.20 ms
ExportExcelAsByteArrayTestJob-YIUEXF.NET Core 2.22400003,268.1 ms138.16 ms21.38 ms
ExportExcelAsByteArrayTestJob-LZHMKS.NET Core 3.12400003,223.9 ms70.93 ms10.98 ms
ExportExcelAsByteArrayTestJob-OONFAJ.NET 4.6.15000007,723.4 ms179.06 ms46.50 ms
ExportExcelAsByteArrayTestJob-YIUEXF.NET Core 2.25000006,959.7 ms481.61 ms125.07 ms
ExportExcelAsByteArrayTestJob-LZHMKS.NET Core 3.15000006,833.2 ms331.74 ms86.15 ms
ExportExcelAsByteArrayTestJob-OONFAJ.NET 4.6.1100000015,443.7 ms582.64 ms151.31 ms
ExportExcelAsByteArrayTestJob-YIUEXF.NET Core 2.2100000013,798.9 ms207.09 ms32.05 ms
ExportExcelAsByteArrayTestJob-LZHMKS.NET Core 3.1100000013,484.1 ms424.85 ms110.33 ms

Csv导出如下所示:

MethodJobRuntimeRowsCountMeanErrorStdDev
ExportCsvAsByteArrayTestJob-SRSOYE.NET 4.6.11000030.43 ms2.493 ms0.647 ms
ExportCsvAsByteArrayTestJob-WLDFBY.NET Core 2.21000030.12 ms5.981 ms1.553 ms
ExportCsvAsByteArrayTestJob-JSEPRQ.NET Core 3.11000024.53 ms0.142 ms0.022 ms
ExportCsvAsByteArrayTestJob-SRSOYE.NET 4.6.1120000345.51 ms16.385 ms4.255 ms
ExportCsvAsByteArrayTestJob-WLDFBY.NET Core 2.2120000330.03 ms16.025 ms4.162 ms
ExportCsvAsByteArrayTestJob-JSEPRQ.NET Core 3.1120000287.98 ms11.898 ms3.090 ms
ExportCsvAsByteArrayTestJob-SRSOYE.NET 4.6.1240000687.57 ms10.379 ms2.695 ms
ExportCsvAsByteArrayTestJob-WLDFBY.NET Core 2.2240000656.00 ms13.741 ms2.126 ms
ExportCsvAsByteArrayTestJob-JSEPRQ.NET Core 3.1240000560.43 ms12.721 ms3.304 ms
ExportCsvAsByteArrayTestJob-SRSOYE.NET 4.6.15000001,478.88 ms31.074 ms8.070 ms
ExportCsvAsByteArrayTestJob-WLDFBY.NET Core 2.25000001,379.52 ms20.652 ms5.363 ms
ExportCsvAsByteArrayTestJob-JSEPRQ.NET Core 3.15000001,182.48 ms39.358 ms10.221 ms
ExportCsvAsByteArrayTestJob-SRSOYE.NET 4.6.110000002,918.99 ms43.023 ms6.658 ms
ExportCsvAsByteArrayTestJob-WLDFBY.NET Core 2.210000002,751.29 ms19.970 ms5.186 ms
ExportCsvAsByteArrayTestJob-JSEPRQ.NET Core 3.110000002,332.39 ms57.988 ms8.974 ms

Excel & Csv 导入

Excel导入如下所示:

MethodJobRuntimeRowsCountMeanErrorStdDev
ImportByStreamTestJob-URKTYJ.NET 4.6.110000711.4 μs136.2 μs35.37 μs
ImportByStreamTestJob-AFBGUZ.NET Core 2.210000746.2 μs131.8 μs20.40 μs
ImportByStreamTestJob-DUXAFG.NET Core 3.110000792.4 μs186.5 μs48.42 μs
ImportByStreamTestJob-URKTYJ.NET 4.6.11200002,297.6 μs181.3 μs47.08 μs
ImportByStreamTestJob-AFBGUZ.NET Core 2.21200002,139.5 μs204.5 μs53.12 μs
ImportByStreamTestJob-DUXAFG.NET Core 3.11200002,035.8 μs304.8 μs47.17 μs
ImportByStreamTestJob-URKTYJ.NET 4.6.12400005,378.2 μs887.9 μs230.59 μs
ImportByStreamTestJob-AFBGUZ.NET Core 2.22400005,345.6 μs989.9 μs257.08 μs
ImportByStreamTestJob-DUXAFG.NET Core 3.12400004,672.5 μs1,004.5 μs260.86 μs
ImportByStreamTestJob-URKTYJ.NET 4.6.150000011,336.6 μs657.3 μs170.69 μs
ImportByStreamTestJob-AFBGUZ.NET Core 2.250000010,833.4 μs952.9 μs247.45 μs
ImportByStreamTestJob-DUXAFG.NET Core 3.150000010,525.7 μs561.0 μs145.69 μs
ImportByStreamTestJob-URKTYJ.NET 4.6.1100000021,965.7 μs1,058.5 μs274.88 μs
ImportByStreamTestJob-AFBGUZ.NET Core 2.2100000020,612.1 μs628.2 μs163.14 μs
ImportByStreamTestJob-DUXAFG.NET Core 3.1100000020,451.1 μs3,807.7 μs988.84 μs

Csv导入如下所示:

MethodJobRuntimeRowsCountMeanErrorStdDev
ImportByStreamTestJob-OPUXWE.NET 4.6.110000294.1 μs1.99 μs0.31 μs
ImportByStreamTestJob-OVPAAE.NET Core 2.210000283.7 μs3.54 μs0.55 μs
ImportByStreamTestJob-AMXXYD.NET Core 3.110000284.5 μs1.77 μs0.46 μs
ImportByStreamTestJob-OPUXWE.NET 4.6.11200002,116.1 μs13.28 μs2.05 μs
ImportByStreamTestJob-OVPAAE.NET Core 2.21200001,855.8 μs80.59 μs20.93 μs
ImportByStreamTestJob-AMXXYD.NET Core 3.11200001,849.3 μs186.63 μs48.47 μs
ImportByStreamTestJob-OPUXWE.NET 4.6.12400005,121.9 μs270.99 μs70.37 μs
ImportByStreamTestJob-OVPAAE.NET Core 2.22400004,448.3 μs84.91 μs13.14 μs
ImportByStreamTestJob-AMXXYD.NET Core 3.12400004,301.9 μs78.77 μs20.46 μs
ImportByStreamTestJob-OPUXWE.NET 4.6.150000011,245.2 μs120.46 μs18.64 μs
ImportByStreamTestJob-OVPAAE.NET Core 2.250000010,214.1 μs113.20 μs29.40 μs
ImportByStreamTestJob-AMXXYD.NET Core 3.150000010,460.1 μs90.90 μs23.61 μs
ImportByStreamTestJob-OPUXWE.NET 4.6.1100000021,807.0 μs299.03 μs46.28 μs
ImportByStreamTestJob-OVPAAE.NET Core 2.2100000019,830.9 μs186.01 μs48.30 μs
ImportByStreamTestJob-AMXXYD.NET Core 3.1100000020,051.3 μs395.98 μs102.83 μs

Reference

https://github.com/dotnetcore/Magicodes.IE

 

原文作者:HueiFeng

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值