您的位置:首页 > 其它

【Perl】正则效率测试比较

2011-02-11 15:17 148 查看
前段时间有朋友提出正则[0-9]与/d这两个哪个效率高,因此用如下Perl进行测试

#!/usr/bin/perl -w
use Time::HiRes 'time';
$TimesToDo = 1000;
$TestString = "42130987241264634" x 10000;
$Count = $TimesToDo;
$StartTime = time();
while ($Count-- > 0){
$TestString =~ m/^[0-9]+$/;
}
$EndTime = time();
printf("正则【[0-9]+】 %.3f seconds./n", $EndTime - $StartTime);

$Count = $TimesToDo;
$StartTime = time();
while ($Count-- > 0){
$TestString =~ m/^/d+$/;
}
$EndTime = time();
printf("正则【//d+】 %.3f seconds./n", $EndTime - $StartTime);

$Count = $TimesToDo;
$StartTime = time();
while ($Count-- > 0){
$TestString =~ m/^[0123456789]+$/;
}
$EndTime = time();
printf("正则【[0123456789]+】 %.3f seconds./n", $EndTime - $StartTime);


测试结果:

正则【[0-9]+】 0.655 seconds.

正则【/d+】 0.359 seconds.

正则【[0123456789]+】 2.413 seconds.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: