全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点,需要的朋友可以参考下。 
代码如下: 
 
- // 定义全局变量 记录时间 
 
 - $_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, \'<img\'.$imgstr); 
 
 - 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.\'<img \'.$imgstr.\'>\'.$str_n." "; 
 
 - makeTimer( \' LINE:\'.__LINE__ ); 
 
 - // 记录到日志中 
 
 - error_log( traceTimer(), 3, \'/tmp/\'.basename(__FILE__).\'.log\' ); 
 
 - // 或者直接输出 
 
 - echo traceTimer();
 
  复制代码 
 
 
 |