php inline profilleme

4 Cevap php

Ben (yerine * cachegrind kullanmak yerine) tarayıcı içinde benim php komut profile için bir çözüm arıyorum

I http://particletree.com/features/php-quick-profiler/ Bir süre önce bu gördüm, ama ben hiç o kadar iyi bir fikir (veya doğru) var

ipuçları / tavsiye takdir

4 Cevap

xdebug dosyaları cachegrind oluşturur, bu nedenle büyük olasılıkla bu kaçınmak isteyecektir. Bu profil sonuçları görmek için büyük bir web arayüzü içerir gibi şu anda XHProf http://mirror.facebook.net/facebook/xhprof/doc.html kullanın.

Kullanabilirsiniz XDebug? Eğer öyleyse, ben herhangi bir profiler gibi kadar etkili olduğunu düşünüyorum, this technique kullanabilirsiniz.

Bir profil olarak, zamanlama ölçümlerin doğruluğundan görünmüyor. Bu genellikle sorunu bulma doğruluk pahasına satın aldı.

Ben hızlı & için, farklı sitelerde Benchmark kullandım kolay profil - beklendiği gibi çalışır: harika, ama benim ihtiyaçları için yeterince iyi değil.

I am using as simple code as this one.
Just $TIMER['mark']=microtime(TRUE); all other the code:

<?
$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);  
?>

ve sonra sonuçları ile basit bir tablo:

<?
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><>";
}
?>

Bu xdebug çıkışı kadar kapsamlı değil, ama bir darboğaz bulmak ve daha fazla bir şey gerekir.