使用go编写比python快60倍的excel导出csv程序

go带来的极其高效的多线程性能,大大提高运行速度。

版权声明

MIT协议
本文讨论的是游戏开发中通用的导表工具,不涉及任何具体项目。起因虽是工作中极慢的python导表工具让我不满,但我写这个代码均在业余时间,在家里所写。并赠送给工作项目使用。以便提升团队效率。
故本工具不涉及任何保密协议,不涉及任何组织。个人所有。
现将本工具代码开源,以便大家使用。

起因和思路

一般游戏公司都使用excel作为配置数据文件。游戏程序当然无法识别,一般都有老程序员写的导表工具。一般都是python,因为环境方便,写起来也爽。特别是工具类。 但是总所周知python有GIL锁,再牛也是单核。游戏配置数据多了,随便改个导出来生效要几分钟。简直忍不了啊!

我灵机一动,go拿来写导表更具简直太美了!go程带来的极强并发多核能力,以及go的struct全是值类型。双重加速啊!(虽然C++更快,但难写好,特别是高并发更难写。自己徒手撸一个,指不定还不如go快,go安全。再说了,我也不怎么会C++😉😉😉)

最终效果

先说结论,最后是快了接近60倍!从几分钟变成3秒搞定。有理由怀疑,目前瓶颈是硬盘的读取速度。而不是CPU。换个固态会更快,但3秒已经非常快了!再优化也没多大意义。

资源下载

必选

配置文件
导表前需要配置导出到哪个目录,英文名叫什么。必须下载和拥有。和go放在同个目录

以下二选一

go源码
需要自己安装go环境,并配置调用的库。

exe可执行文件(推荐)
双击点开就用,但因为该工具要读写文件,调用了系统库。可能会被杀毒软件误杀。请自行判断。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计