背景
去年因爲線上系統需要導出大量數據(大概是 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
測試代碼
https://github.com/Martin91/e...
結果
結論
- Go 是最快的;
- Python 2.7 優於 Python 3.6;
- Ruby 2.6 表現最不給力。