作者kornelius (c9s)
看板Perl
标题Re: [问题] 逐行处理大档有更快的方法吗
时间Sun Apr 26 11:45:19 2009
利用 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)
1F:推 abliou:这方面可以请你说明清楚点吗?谢谢!! 04/26 11:54