资讯专栏INFORMATION COLUMN

不严谨的不同语言下大 Excel 文件写入的性能比较

keithxiaoy / 1566人阅读

摘要:测试内容使用不同的语言及其版本,测试各自完成包含行列单元格的文件的生成,对比其各自耗费时间,次重复执行取其平均值后进行横向比较。

背景

去年因为线上系统需要导出大量数据(大概是 11 万行)到 Excel,代码是 Python 2.7 写的,除去数据库查询耗时,整个的 Excel 文件生成也还要耗费几十秒的时间,这听起来真是一个非常夸张的事情。后来为其更换了号称性能表现最好的 pyexcelerate 库,性能确实有提升,但是仍是差强人意的在小几十秒。

昨天突发奇想,如果是换成其他语言,这个 excel 导出是否还需要这么长时间?于是经过一番试验之后,就有了今天的这篇文章。

特别声明:试验只是为了感官上做个简单对比,测试结果采集数据只考虑了耗时,没有考虑资源消耗等情况,需要严谨的性能对比的读者,可以放弃阅读了。

测试内容

使用不同的语言及其版本,测试各自完成包含 100,000 行 x 50 列单元格的 excel 文件的生成,对比其各自耗费时间,3次重复执行取其平均值后进行横向比较。

已经测试的语言及版本

Ruby 2.6 + axlsx 2.0.1

Python 2.7 + pyexcelerate 0.7.3

Python 3.6 + pyexcelerate 0.7.3

Go 1.10.1 + gooxml 0.8

测试代码

https://github.com/Martin91/e...

结果

结论

就这个测试场景来说:

Go 1.10.1 + gooxml 0.8 是最快的;

同样是 pyexcelerate 0.7.3,Python 2.7 性能优于 Python 3.6;

Ruby 2.6 + axlsx 2.0.1 表现最不给力,这里有个题外话,选择的 axlsx 本身并不是性能最好的 gem,只是流行度够高,Ruby 有一个专门针对性能优化后的 gem,但是因为知之甚少,没有采用。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/43434.html

相关文章

  • Go 语言 Excel 类库 Excelize 2.0.0 版本发布

    摘要:是语言编写的用于操作文档类库,基于标准。可以使用它来读取写入由及以上版本创建的文档。年月日,社区正式发布了版本,该版本包含了很多新功能错误修复和性能优化。 showImg(https://segmentfault.com/img/remote/1460000018971694?w=880&h=360); Excelize 是 Go 语言编写的用于操作 Office Excel 文档类库...

    andycall 评论0 收藏0
  • 使用PHP_XLSXWriter代替PHPExcel

    摘要:能不能单独设置某个单元格的值这个目前并没有实现,现在数据的写入都是逐行写入的,不支持这么细的粒度,不过折中的做法是把不需要填充的单元格写入即可如果有什么使用问题,可以在下面留言,一起探讨使用方式 二者有何区别? PHPExcel 是一个处理Excel,CVS文件的开源框架,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,这也是PHP至今最通用的Ex...

    TZLLOG 评论0 收藏0
  • java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) exce

    摘要:消费之后,多线程处理文件导出,生成文件后上传到等文件服务器。前端直接查询并且展现对应的任务执行列表,去等文件服务器下载文件即可。这客户体验不友好,而且网络传输,系统占用多种问题。拓展阅读导出最佳实践框架 产品需求 产品经理需要导出一个页面的所有的信息到 EXCEL 文件。 需求分析 对于 excel 导出,是一个很常见的需求。 最常见的解决方案就是使用 poi 直接同步导出一个 exc...

    K_B_Z 评论0 收藏0
  • Excelize发布2.0.1版本,Go语言Excel文档基础库

    摘要:是语言编写的用于操作文档类库,基于标准。可以使用它来读取写入由及以上版本创建的文档。年月日,社区正式发布了版本,该版本包含了多项新增功能错误修复和兼容性提升优化。下面是有关该版本更新内容的摘要,完整的更改列表可查看。 showImg(https://segmentfault.com/img/remote/1460000018971694?w=880&h=360); Excelize 是...

    oliverhuang 评论0 收藏0
  • XCel 项目总结 - Electron 与 Vue 性能优化

    摘要:而这里的单元格信息是唯一的,所以直接通过为一个空对象赋值即可。和相关的知识和技巧高亮的列单元格采用展示。在中,被选中的单元格会高亮相应的行和列,以提醒用户。 showImg(https://segmentfault.com/img/bVGkdk?w=900&h=500); XCEL 是一个 Excel 数据清洗工具,其通过可视化的方式让用户轻松地对 Excel 数据进行筛选。 XCEL...

    XUI 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<