如何衡量PHP的性能?[转载]

cwdobuhd  于 12个月前  发布在  PHP
关注(0)|答案(4)|浏览(105)

此问题在此处已有答案

Profiling PHP code [duplicate](9个回答)
3天前关闭。
如何对PHP中的某些代码进行基准测试?我可以使用计时器来计算差异,但我不确定这是否是最好的解决方案。

y1aodyip

y1aodyip1#

看看XDebug Profiler来测试性能等。
Xdebug的Profiler是一个功能强大的工具,让你能够分析你的PHP代码,确定瓶颈,或者大致看看你的代码的哪些部分是慢的,可以使用速度提升。

bqucvtff

bqucvtff2#

您可以使用profiler,就像Xdebug中内置的一样。

uubf1zoe

uubf1zoe3#

Xcovery很酷,但如果你不想安装这个库,你可以尝试以下方法:
我用来定位可能的瓶颈的方法是:

$benchmark_start = microtime(true);
// Code goes here
$benchmark_stop = microtime(true);
$benchmark_total = $benchmark_stop - $benchmark_start;
echo "The script took ". $benchmark_total." seconds";

字符串

bwitn5fc

bwitn5fc4#

使用计时器手动分析的更复杂的示例
对我来说很完美,特别是当我被要求在一些只允许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><>";
}

字符串

相关问题