代码之家  ›  专栏  ›  技术社区  ›  David Weng

测量性能PHP

  •  10
  • David Weng  · 技术社区  · 16 年前

    4 回复  |  直到 16 年前
        1
  •  7
  •   Sarfraz    16 年前

    看看 XDebug Profiler

    Xdebug的Profiler是一个强大的工具 这让你有能力分析 你的PHP代码并确定 你的部分代码很慢,可能

        2
  •  3
  •   VolkerK    16 年前

    你可以使用 profiler Xdebug .

        3
  •  1
  •   Guillermo    16 年前

    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";
    
        4
  •  1
  •   Your Common Sense    16 年前

    一个更复杂的使用计时器手动分析的例子

    毋庸置疑,在live服务器上,分析比在hoothouse开发人员的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><>";
    }