java 生成excel_多种编程语言生成excel?

4eb902d07960041616f73fe39a21cdbb.png

最近有个项目,需要处理大量数据生成excel?

  1. 数据量

50多个字段, 20万条记录 (从数据库读取)

5个字段左右, 50万条记录 (从数据库读取)

2. 测试

从两个方面,一个是生成速度,一个cpu/内存占用

测试平台 linux,机器配置8核cpu 32g内存 centos7.x

速度: golang -> java -> .net core -> php

20W数据

  • golang 生成在2分钟左右,程序业务逻辑没有开启协程, cpu占用300%,内存占用8g+, golang有多核处理,限制使用1核cpu, 时间也在2分钟左右, cpu占用100%,内存占用8g+ 使用excel库 http://github.com/tealeg/xlsx
  • java 生成在2分钟左右, 程序本身没开线程, cpu占用100%, 内存占用,4g+,根据机器内存情况,jvm需要调整内存。
  • .net core 生成在10分钟左右,程序本身没开task,cpu占用100%或低于,内存占用 2g+ 使用库epplus
  • php 生成在80分钟+, 顺序处理。 cpu占用100%, 内存占用10g+,使用类库phpexcel

3.分析结果!

如果在机器性能强劲, 非docker等情况下资源充足的情况下, golang/java的选择都可以。golang 非常优秀。

  • 速度 java > golang > .net core > php
  • 内存占用 .net core < java < golang < php
  • 文件大小 php < golang < dotnet < java

如果资源紧张,或docker情况下,推荐使用.net core 处理excel,时间稍微长一点点,但对资源占用控制非常不错。

php应该没有可比性了,数据量小的可以使用。

代码地址

wayhood/exportExcelTest

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值