看板 Perl 關於我們 聯絡資訊
利用 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)
abliou:這方面可以請你說明清楚點嗎?謝謝!! 04/26 11:54