如何在PHP中对某些代码进行基准测试?我可以使用计时器来计算差异,我只是不确定它是否是最好的解决方案。
答案 0 :(得分:7)
查看XDebug Profiler以对性能进行基准测试等。
Xdebug的Profiler是一款功能强大的工具 这使您能够分析 你的PHP代码并确定 瓶颈或一般看哪个 你的部分代码很慢而且可以 使用速度提升。
答案 1 :(得分:3)
答案 2 :(得分:1)
XDebug很酷但如果您不想安装此库,可以尝试以下方法:
我用来定位可能的瓶颈是:
$benchmark_start = microtime(true);
// Code goes here
$benchmark_stop = microtime(true);
$benchmark_total = $benchmark_stop - $benchmark_start;
echo "The script took ". $benchmark_total." seconds";
答案 3 :(得分:1)
使用定时器进行手动分析的更复杂的示例
对我来说非常适合,特别是当我被要求在一些只有FTP访问的实时服务器上解决问题时
不用说,分析在实时服务器上更重要(也更有用),而不是在温室开发者的PC上。
$TIMER['start']=microtime(TRUE);
// some code
$query="SELECT ...";
$TIMER['before q']=microtime(TRUE);
$res=mysql_query($query);
$TIMER['after q']=microtime(TRUE);
while ($row = mysql_fetch_array($res)) {
// some code
}
$TIMER['array filled']=microtime(TRUE);
// some code
$TIMER['pagination']=microtime(TRUE);
if ('127.0.0.1' === $_SERVER['REMOTE_ADDR']) { //I set my IP here
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><>";
}