Re: [問題] 逐行處理大檔有更快的方法嗎

看板Perl作者 (c9s)時間16年前 (2009/04/26 11:45), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/5 (看更多)
利用 local $/ 可以改善一些效能。 如果資訊處理的部份會托慢速度,你可以考慮把那個部份切成 thread 做 或是 pipe 出去給其他多個 process 我用一個大約 15M random file 做了一下測試: [ Oulixeus :~ ]$ time perl chunk.pl real 0m0.130s user 0m0.094s sys 0m0.029s [ Oulixeus :~ ]$ time perl chunk.pl # 加上 local $/; real 0m0.071s user 0m0.018s sys 0m0.046s ※ 引述《teyton (ton)》之銘言: : 請教各位高手, : 我需要用perl對大檔做典型的每行比對擷取處理工作, : 可是效能似乎不佳,是逐行處理的工作本身就一定很慢?或是有沒有更快的寫法呢? : 感恩! : ps. 我有拿掉處理資訊的部分,效能還是很慢,確認瓶頸不是在那邊 : open (MYFILE, 'largeFile.txt'); : while (<MYFILE>) { : chomp; : # 判斷該行是否需要,若不需要直接跳一下行 : # 對該行做字串比對 : # 擷取行中部分資訊 : # 處理資訊 : } : close (MYFILE); -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.168.163 ※ 編輯: kornelius 來自: 122.117.168.163 (04/26 11:47)

04/26 11:54, , 1F
這方面可以請你說明清楚點嗎?謝謝!!
04/26 11:54, 1F
文章代碼(AID): #19yzZIbh (Perl)
文章代碼(AID): #19yzZIbh (Perl)