• 技术文章 >后端开发 >php教程

    全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点_php技巧

    2016-05-17 09:21:49原创405
    复制代码 代码如下:

    // 定义全局变量 记录时间
    $_timer_id = 0;
    // 函数设置全局变量 记录各个断点的运行所需时间
    function makeTimer( $notes, $onOff=FALSE )
    {
    if( $onOff )
    {
    global $_timer_id;
    $GLOBALS['timer'][$_timer_id][0] = microtime(TRUE);
    $GLOBALS['timer'][$_timer_id][1] = $notes;
    $_timer_id++;
    }
    }
    // 把全局运行时间情况输出
    function traceTimer()
    {
    $timer_str = '';
    $G_timer = count($GLOBALS['timer'])-1;
    if( $G_timer>0 )
    {
    for( $i=0;$i<$G_timer;$i++ )
    {
    $dif_time = number_format( ($GLOBALS['timer'][$i+1][0] - $GLOBALS['timer'][$i][0]), 3 );
    $timer_str .= 'dif: '.$dif_time.' '.$GLOBALS['timer'][$i][1]."\n";
    }
    $dif_time = number_format( (microtime(TRUE) - $GLOBALS['timer'][$G_timer][0]), 3 );
    $timer_str .= 'dif: '.$dif_time.' '.$GLOBALS['timer'][$G_timer][1]."\n";
    }
    return $timer_str;
    }
    使用方法:
    // 开始时间
    makeTimer( ' LINE:'.__LINE__ );
    $imgstrpos = strpos($str, 'makeTimer( ' LINE:'.__LINE__ );
    $str_p = substr($str_noimg, 0, $imgstrpos);
    makeTimer( ' LINE:'.__LINE__ );
    $str_n = substr($str_noimg, $imgstrpos, strlen($str_noimg));
    makeTimer( ' LINE:'.__LINE__ );
    $pst_exc_imgs = $str_p.''.$str_n." ";
    makeTimer( ' LINE:'.__LINE__ );
    // 记录到日志中
    error_log( traceTimer(), 3, '/tmp/'.basename(__FILE__).'.log' );
    // 或者直接输出
    echo traceTimer();

    at 2010-05-14 09:20
    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:程序片段 运行时间
    上一篇:深入理解PHP之require/include顺序 推荐_php技巧 下一篇:PHP中foreach循环中使用引用要注意的地方_php技巧
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 使用PHP和AJAX的XML编程_PHP教程• php通用防注入程序 推荐_PHP教程• PHP项目开发中最常用的自定义函数整理_PHP教程• php cookis创建实现代码_PHP教程• 继续收藏一些PHP常用函数第1/2页_PHP教程
    1/1

    PHP中文网