不嚴謹的不同語言下大 Excel 文件寫入的性能比較

背景

去年因爲線上系統需要導出大量數據(大概是 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...

結果

clipboard.png

結論

  1. Go 是最快的;
  2. Python 2.7 優於 Python 3.6;
  3. Ruby 2.6 表現最不給力。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章