Профилирование PHP Inline - PullRequest
3 голосов
/ 28 мая 2010

Я ищу решение для профилирования моих php-скриптов в браузере (вместо того, чтобы использовать * cachegrind)

Я видел это некоторое время назад http://particletree.com/features/php-quick-profiler/,, но я понятия не имею, насколько он хорош (или точен)

Советы / советы приветствуются

Ответы [ 4 ]

4 голосов
/ 28 мая 2010

xdebug генерирует файлы cachegrind, так что вы, вероятно, захотите избежать этого. В настоящее время я использую XHProf http://mirror.facebook.net/facebook/xhprof/doc.html, поскольку он включает отличный веб-интерфейс для просмотра результатов профилирования.

1 голос
/ 28 мая 2010

Можете ли вы использовать XDebug ? Если это так, вы можете использовать эту технику , которая, на мой взгляд, так же эффективна, как и любой профилировщик.

В профилировщике не ищите точность измерений времени. Это обычно покупается за счет точности нахождения проблемы.

0 голосов
/ 28 мая 2010

Я использую такой же простой код, как этот.
Просто $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, но может найти узкое место, и мне больше ничего не нужно.

0 голосов
/ 28 мая 2010

Я использовал Бенчмарк на разных сайтах для быстрого и простого профилирования - все работает как положено: не отлично, но достаточно хорошо для моих нужд.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...