2010-05-28 81 views

回答

0

我已经在不同的地点使用Benchmark,快速&容易分析 - 它按预期工作:不是很大,但我需要足够好。

1

您能使用XDebug吗?如果是这样,您可以使用this technique,我认为这与任何分析器一样有效。

在剖析器中,不要期望定时测量的准确性。通常以牺牲发现问题的准确性为代价。

+0

是的,我已安装xdebug,感谢您的链接,我会看看 – mononym 2010-05-28 12:04:50

0

我正在使用这个简单的代码。
只是$TIMER['mark']=microtime(TRUE);其他所有代码:

<? 
$TIMER['start']=microtime(TRUE); 
// some code 
$TIMER['q1 start']=microtime(TRUE); 
    $res=mysql_query($query); 
$TIMER['q1 end']=microtime(TRUE); 
// some code 
$TIMER['q2 start']=microtime(TRUE); 
    $res=mysql_query($query); 
$TIMER['q2 end']=microtime(TRUE); 
// some code 
$TIMER['pagination']=microtime(TRUE); 
?> 

,然后简单的表与结果:

<? 
if ('127.0.0.1' === $_SERVER['REMOTE_ADDR']) { 
    echo "<table border=1><tr><td>name</td><td>so far</td><td>delta</td><td>per cent</td></tr>"; 
    reset($TIMER); 
    $start=$prev=current($TIMER); 
    $total=end($TIMER)-$start; 
    foreach($TIMER as $name => $value) { 
    $sofar=round($value-$start,3); 
    $delta=round($value-$prev,3); 
    $percent=round($delta/$total*100); 
    echo "<tr><td>$name</td><td>$sofar</td><td>$delta</td><td>$percent</td></tr>"; 
    $prev=$value; 
    } 
    echo "</table><>"; 
} 
?> 

它不像Xdebug的输出为全面,但它可以找到一个瓶颈,我需要什么更多。