您好,欢迎访问一九零五行业门户网

对PHP采集数据提取核心函数的速度的测试与分析_PHP

采集
对php采集数据提取核心函数的速度的测试与分析
由于程序需要,于是对php采集中的字符提取的核心部分进行了执行速度的测试。
测试了三种最常见的提取办法:
方法一:
starttimer();
for( $i = 0; $i {
$returnstr = getcontent( $sourcestr );
}
$timeinfo = $debug->endtimer();
echo $timeinfo;
?>
通过比较低级的字符操作函数进行提取.
方法二:
starttimer();
for( $i = 0; $i {
$returnstr = getcontent( $sourcestr );
}
$timeinfo = $debug->endtimer();
echo $timeinfo;
?>
使用一个简单的正则来提取.
方法三:
starttimer();
for( $i = 0; $i {
$returnstr = getcontent( $sourcestr );
}
$timeinfo = $debug->endtimer();
echo $timeinfo;
?>
通过两次explode分裂字符串来提取.
测试前我的观点是: 1 > 2 > 3
在两台电脑上进行测试,每台测试了两次,结果如下:
(1)17.32061
(2)26.81763
(3)17.53692
(1)17.87291
(2)26.88415
(3)17.10972
(1)11.30147
(2)20.25284
(3)11.54464
(1)11.69471
(2)21.19316
(3)11.72613
so,最终结果不是我想的那样,第一种和第三种方法的速度相当.第二种方法消耗时间大约是第一,三种的两倍.
看来正则由于匹配的原因速度是最慢的,而explode由于两次的分裂,虽然速度上不慢,但是资源消耗比第一种方法多,毕竟是分裂了两次,都是分裂到数组,开销比纯粹的简单字符函数处理要来得大.
综上,推荐使用方法一.
有兴趣的朋友可以自己测试下:
class.debug.php
其它类似信息

推荐信息