摘要:測試內容使用不同的語言及其版本,測試各自完成包含行列單元格的文件的生成,對比其各自耗費時間,次重復執行取其平均值后進行橫向比較。
背景
去年因為線上系統需要導出大量數據(大概是 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,但是因為知之甚少,沒有采用。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43434.html
摘要:是語言編寫的用于操作文檔類庫,基于標準。可以使用它來讀取寫入由及以上版本創建的文檔。年月日,社區正式發布了版本,該版本包含了很多新功能錯誤修復和性能優化。 showImg(https://segmentfault.com/img/remote/1460000018971694?w=880&h=360); Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔類庫...
摘要:能不能單獨設置某個單元格的值這個目前并沒有實現,現在數據的寫入都是逐行寫入的,不支持這么細的粒度,不過折中的做法是把不需要填充的單元格寫入即可如果有什么使用問題,可以在下面留言,一起探討使用方式 二者有何區別? PHPExcel 是一個處理Excel,CVS文件的開源框架,它基于微軟的OpenXML標準和PHP語言。可以使用它來讀取、寫入不同格式的電子表格,這也是PHP至今最通用的Ex...
摘要:消費之后,多線程處理文件導出,生成文件后上傳到等文件服務器。前端直接查詢并且展現對應的任務執行列表,去等文件服務器下載文件即可。這客戶體驗不友好,而且網絡傳輸,系統占用多種問題。拓展閱讀導出最佳實踐框架 產品需求 產品經理需要導出一個頁面的所有的信息到 EXCEL 文件。 需求分析 對于 excel 導出,是一個很常見的需求。 最常見的解決方案就是使用 poi 直接同步導出一個 exc...
摘要:是語言編寫的用于操作文檔類庫,基于標準。可以使用它來讀取寫入由及以上版本創建的文檔。年月日,社區正式發布了版本,該版本包含了多項新增功能錯誤修復和兼容性提升優化。下面是有關該版本更新內容的摘要,完整的更改列表可查看。 showImg(https://segmentfault.com/img/remote/1460000018971694?w=880&h=360); Excelize 是...
摘要:而這里的單元格信息是唯一的,所以直接通過為一個空對象賦值即可。和相關的知識和技巧高亮的列單元格采用展示。在中,被選中的單元格會高亮相應的行和列,以提醒用戶。 showImg(https://segmentfault.com/img/bVGkdk?w=900&h=500); XCEL 是一個 Excel 數據清洗工具,其通過可視化的方式讓用戶輕松地對 Excel 數據進行篩選。 XCEL...
閱讀 2263·2021-09-30 09:48
閱讀 3634·2021-09-24 10:27
閱讀 1790·2021-09-22 15:32
閱讀 2026·2021-08-09 13:44
閱讀 3575·2019-08-30 15:55
閱讀 1045·2019-08-29 17:12
閱讀 2000·2019-08-29 17:05
閱讀 2918·2019-08-29 13:43