我正在寻找一个解决方案在浏览器中分析我的PHP脚本(而不是使用* cachegrind)剖析PHP在线
我看到这个前一阵子http://particletree.com/features/php-quick-profiler/,但我不知道它有多好是(或准确)
提示/建议赞赏
我正在寻找一个解决方案在浏览器中分析我的PHP脚本(而不是使用* cachegrind)剖析PHP在线
我看到这个前一阵子http://particletree.com/features/php-quick-profiler/,但我不知道它有多好是(或准确)
提示/建议赞赏
xdebug生成cachegrind文件,所以你可能想避免这种情况。我目前使用XHProf http://mirror.facebook.net/facebook/xhprof/doc.html,因为它包含了一个伟大的网页界面,用于查看分析结果。
我已经在不同的地点使用Benchmark,快速&容易分析 - 它按预期工作:不是很大,但我需要足够好。
您能使用XDebug吗?如果是这样,您可以使用this technique,我认为这与任何分析器一样有效。
在剖析器中,不要期望定时测量的准确性。通常以牺牲发现问题的准确性为代价。
是的,我已安装xdebug,感谢您的链接,我会看看 – mononym 2010-05-28 12:04:50
我正在使用这个简单的代码。
只是$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的输出为全面,但它可以找到一个瓶颈,我需要什么更多。
谢谢看起来有趣,会给它一个去 – mononym 2010-05-28 12:06:00