Re: [問題] 逐行處理大檔有更快的方法嗎
利用 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
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章