标题: 从执行效率上对比ereg和preg_match 的优劣
lizyy
新手上路
Rank: 1



UID 1753
精华 0
积分 0
帖子 6
翻译 0
原创 0
阅读权限 10
注册 2008-8-3
状态 离线
发表于 2008-8-3 23:42  资料  短消息  加为好友 
从执行效率上对比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
顶部
 


PHPEye开源社区


当前时区 GMT+8, 现在时间是 2008-9-7 08:07

    Powered by Discuz! 5.5.0  © 2001-2007 Comsenz Inc.
Processed in 0.014902 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - PHPEye开源社区 - Archiver