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

看板Perl作者 (ton)時間15年前 (2009/04/26 00:40), 編輯推噓5(502)
留言7則, 4人參與, 最新討論串1/5 (看更多)
請教各位高手, 我需要用perl對大檔做典型的每行比對擷取處理工作, 可是效能似乎不佳,是逐行處理的工作本身就一定很慢?或是有沒有更快的寫法呢? 感恩! ps. 我有拿掉處理資訊的部分,效能還是很慢,確認瓶頸不是在那邊 open (MYFILE, 'largeFile.txt'); while (<MYFILE>) { chomp; # 判斷該行是否需要,若不需要直接跳一下行 # 對該行做字串比對 # 擷取行中部分資訊 # 處理資訊 } close (MYFILE); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.15.131

04/26 00:44, , 1F
看你的記憶體夠不夠大,夠就全部丟下去看會不會快點
04/26 00:44, 1F

04/26 02:19, , 2F
整個讀進來反而更慢 這樣已經是最快的作法了
04/26 02:19, 2F

04/26 02:19, , 3F
如果你還是認為很慢 那你可以用C寫一個版本測測看
04/26 02:19, 3F

04/26 02:20, , 4F
如果速度有改善那就用 perlxs 寫一個模組囉 :)
04/26 02:20, 4F

04/26 03:17, , 5F
可以先用grep取出需要的部份嗎?XD 如果行數不多的話
04/26 03:17, 5F

04/26 03:33, , 6F
我指的是需要的行數不多 且可以用regex判斷的話
04/26 03:33, 6F

04/26 10:48, , 7F
瞭解..全部讀進來我試過真的較慢..我可以試試perlxs和grep
04/26 10:48, 7F
文章代碼(AID): #19ypqQl8 (Perl)
討論串 (同標題文章)
文章代碼(AID): #19ypqQl8 (Perl)