摘要:測(cè)試內(nèi)容使用不同的語(yǔ)言及其版本,測(cè)試各自完成包含行列單元格的文件的生成,對(duì)比其各自耗費(fèi)時(shí)間,次重復(fù)執(zhí)行取其平均值后進(jìn)行橫向比較。
背景
去年因?yàn)榫€(xiàn)上系統(tǒng)需要導(dǎo)出大量數(shù)據(jù)(大概是 11 萬(wàn)行)到 Excel,代碼是 Python 2.7 寫(xiě)的,除去數(shù)據(jù)庫(kù)查詢(xún)耗時(shí),整個(gè)的 Excel 文件生成也還要耗費(fèi)幾十秒的時(shí)間,這聽(tīng)起來(lái)真是一個(gè)非常夸張的事情。后來(lái)為其更換了號(hào)稱(chēng)性能表現(xiàn)最好的 pyexcelerate 庫(kù),性能確實(shí)有提升,但是仍是差強(qiáng)人意的在小幾十秒。
昨天突發(fā)奇想,如果是換成其他語(yǔ)言,這個(gè) excel 導(dǎo)出是否還需要這么長(zhǎng)時(shí)間?于是經(jīng)過(guò)一番試驗(yàn)之后,就有了今天的這篇文章。
特別聲明:試驗(yàn)只是為了感官上做個(gè)簡(jiǎn)單對(duì)比,測(cè)試結(jié)果采集數(shù)據(jù)只考慮了耗時(shí),沒(méi)有考慮資源消耗等情況,需要嚴(yán)謹(jǐn)?shù)男阅軐?duì)比的讀者,可以放棄閱讀了。
測(cè)試內(nèi)容使用不同的語(yǔ)言及其版本,測(cè)試各自完成包含 100,000 行 x 50 列單元格的 excel 文件的生成,對(duì)比其各自耗費(fèi)時(shí)間,3次重復(fù)執(zhí)行取其平均值后進(jìn)行橫向比較。
已經(jīng)測(cè)試的語(yǔ)言及版本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
測(cè)試代碼https://github.com/Martin91/e...
結(jié)果 結(jié)論就這個(gè)測(cè)試場(chǎng)景來(lái)說(shuō):
Go 1.10.1 + gooxml 0.8 是最快的;
同樣是 pyexcelerate 0.7.3,Python 2.7 性能優(yōu)于 Python 3.6;
Ruby 2.6 + axlsx 2.0.1 表現(xiàn)最不給力,這里有個(gè)題外話(huà),選擇的 axlsx 本身并不是性能最好的 gem,只是流行度夠高,Ruby 有一個(gè)專(zhuān)門(mén)針對(duì)性能優(yōu)化后的 gem,但是因?yàn)橹跎伲瑳](méi)有采用。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43434.html
摘要:是語(yǔ)言編寫(xiě)的用于操作文檔類(lèi)庫(kù),基于標(biāo)準(zhǔn)??梢允褂盟鼇?lái)讀取寫(xiě)入由及以上版本創(chuàng)建的文檔。年月日,社區(qū)正式發(fā)布了版本,該版本包含了很多新功能錯(cuò)誤修復(fù)和性能優(yōu)化。 showImg(https://segmentfault.com/img/remote/1460000018971694?w=880&h=360); Excelize 是 Go 語(yǔ)言編寫(xiě)的用于操作 Office Excel 文檔類(lèi)庫(kù)...
摘要:能不能單獨(dú)設(shè)置某個(gè)單元格的值這個(gè)目前并沒(méi)有實(shí)現(xiàn),現(xiàn)在數(shù)據(jù)的寫(xiě)入都是逐行寫(xiě)入的,不支持這么細(xì)的粒度,不過(guò)折中的做法是把不需要填充的單元格寫(xiě)入即可如果有什么使用問(wèn)題,可以在下面留言,一起探討使用方式 二者有何區(qū)別? PHPExcel 是一個(gè)處理Excel,CVS文件的開(kāi)源框架,它基于微軟的OpenXML標(biāo)準(zhǔn)和PHP語(yǔ)言??梢允褂盟鼇?lái)讀取、寫(xiě)入不同格式的電子表格,這也是PHP至今最通用的Ex...
摘要:消費(fèi)之后,多線(xiàn)程處理文件導(dǎo)出,生成文件后上傳到等文件服務(wù)器。前端直接查詢(xún)并且展現(xiàn)對(duì)應(yīng)的任務(wù)執(zhí)行列表,去等文件服務(wù)器下載文件即可。這客戶(hù)體驗(yàn)不友好,而且網(wǎng)絡(luò)傳輸,系統(tǒng)占用多種問(wèn)題。拓展閱讀導(dǎo)出最佳實(shí)踐框架 產(chǎn)品需求 產(chǎn)品經(jīng)理需要導(dǎo)出一個(gè)頁(yè)面的所有的信息到 EXCEL 文件。 需求分析 對(duì)于 excel 導(dǎo)出,是一個(gè)很常見(jiàn)的需求。 最常見(jiàn)的解決方案就是使用 poi 直接同步導(dǎo)出一個(gè) exc...
摘要:是語(yǔ)言編寫(xiě)的用于操作文檔類(lèi)庫(kù),基于標(biāo)準(zhǔn)??梢允褂盟鼇?lái)讀取寫(xiě)入由及以上版本創(chuàng)建的文檔。年月日,社區(qū)正式發(fā)布了版本,該版本包含了多項(xiàng)新增功能錯(cuò)誤修復(fù)和兼容性提升優(yōu)化。下面是有關(guān)該版本更新內(nèi)容的摘要,完整的更改列表可查看。 showImg(https://segmentfault.com/img/remote/1460000018971694?w=880&h=360); Excelize 是...
摘要:而這里的單元格信息是唯一的,所以直接通過(guò)為一個(gè)空對(duì)象賦值即可。和相關(guān)的知識(shí)和技巧高亮的列單元格采用展示。在中,被選中的單元格會(huì)高亮相應(yīng)的行和列,以提醒用戶(hù)。 showImg(https://segmentfault.com/img/bVGkdk?w=900&h=500); XCEL 是一個(gè) Excel 數(shù)據(jù)清洗工具,其通過(guò)可視化的方式讓用戶(hù)輕松地對(duì) Excel 數(shù)據(jù)進(jìn)行篩選。 XCEL...
閱讀 2274·2021-09-30 09:48
閱讀 3648·2021-09-24 10:27
閱讀 1805·2021-09-22 15:32
閱讀 2036·2021-08-09 13:44
閱讀 3585·2019-08-30 15:55
閱讀 1057·2019-08-29 17:12
閱讀 2019·2019-08-29 17:05
閱讀 2929·2019-08-29 13:43