+ -
当前位置:首页 → 问答吧 → 发现perl的正则表达式比grep的效率还高!?有没有搞错?

发现perl的正则表达式比grep的效率还高!?有没有搞错?

时间:2010-09-07

来源:互联网

我自己写的perl正则,如下:
#!/usr/bin/perl -w

use strict;

die "$0 must have 2 args:RE FILE\n" unless @ARGV==2;
local $/=")\n";
my $re=shift;
my $file=shift;
die "$file is not exist\n" unless -e $file;
open my $fh,"< $file" or die "$!";
while (<$fh>) {
        print "$_" if /$re/i;
}
close $fh;


用perl和grep的效率对比情况如下:


time ./grep_perl NET-05 log201009060000.dat
real    0m28.215s
user    0m22.282s
sys     0m5.697s



time grep -i NET-05 log201009060000.dat
real    0m56.224s
user    0m52.302s
sys     0m3.684s


log文件为420M。

perl正则的效率竟然是grep效率的2倍!
请各位看看,是不是真的?

作者: gaochong   发布时间: 2010-09-07

你测试多几次··看看是不是真咯·····

作者: wfnh   发布时间: 2010-09-07

是在空载机器上跑的,跑了几次都这样。

请各位指点。

作者: gaochong   发布时间: 2010-09-07

看那个结果 perl 其实是慢的,但是perl 的IO优化过,比 grep 强,这个测试主要时间都在IO上了

作者: zhlong8   发布时间: 2010-09-07

grep -i 比普通的grep 要慢2-10倍

作者: chenzq1604   发布时间: 2010-09-07

热门下载

更多