【Perl】正则效率测试比较

    技术2025-03-13  38

    前段时间有朋友提出正则[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.

     

    最新回复(0)