lizyy
新手上路
UID 1753
精华
0
积分 0
帖子 6
翻译 0
原创 0
阅读权限 10
注册 2008-8-3
状态 离线
|
|
|
从执行效率上对比ereg和preg_match 的优劣
今天我们从执行效率上来对比POSIX风格的ereg和兼容Perl风格的preg_match
我们都知道ereg是PHP的正则函数,而preg_match 是perl移植过来的。
两者的写法上都有些区别。
现在我们从执行效率上看看两者的区别
为了让时间上区别更明显 我们讲函数执行1000次 并对比3次看看他们的区别
lzy © 2008, View php source
$datetime = "2008-08-03";
$loopnum = 1000;
$num = 5;
/**
* 时间统计函数
*/
function microtime_float($time = null)
{
list($usec, $sec) = explode(' ', $time ? $time : microtime());
return ((float)$usec + (float)$sec);
}
echo "从时间转换来看各函数对字符处理效率:";
for ($k = 0; $k < $num; $k++){
$time_start = microtime_float();
for($i = 0; $i < $loopnum; $i++){
preg_match('/([\d]{4})-([\d]{2})-([\d]{2})/i', $datetime, $outarr);
$result = mktime(0, 0, 0, $outarr[2], $outarr[3], $outarr[1]);
}
$time_1 = microtime_float();
for($i = 0; $i < $loopnum; $i++){
ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $datetime, $outarr);
$result = mktime(0, 0, 0, $outarr[2], $outarr[3], $outarr[1]);
}
$time_2 = microtime_float();
echo '';
echo "1:preg_match: " . ($time_1 - $time_start) . " ";
echo "2:ereg: " . ($time_2 - $time_1) . " ";
echo '';
}
exit;
Parsed in 0.288 seconds
现在让我们来分析下实验结果:
1: preg_match:........
查看全文(摘自:lzy 源创.博客)
|

欢迎访问我的BLOG
www.i-cando.cn
|
|
|