В настоящее время я использую xdebug profiler
& KCacheGrind
. Но формат GallGrind не хранит полную трассировку вызова, а только родительские дочерние трассировки вызовов (посмотрите на Kcachegrind / callgrind неточно для диспетчерских функций, о чем я говорю).
Есть ли профилировщик с визуализацией с полной визуализацией обратной линии, доступной для PHP?
Я посмотрел
- PHP Quick Profiler : Но для этого требуется слишком много кода для добавления и визуализации.
- phpCallGraph : его последняя версия была изменена в 2009-08-06 ( ref ) .
Несколько месяцев назад мне пришлось сделать некоторые основные профилирования PHP для предыдущего проекта.
Лучший вариант, который я смог найти, – это xhprof на facebook с xhprof-ui .
Читайте о том, как установить их оба здесь:
http://blog.preinheimer.com/index.php?/archives/355-A-GUI-for-XHProf.html
Некоторые профи:
Если вы просто хотите посмотреть на профилировщик, это одно. Если вы пытаетесь оптимизировать свой код, не забывайте об этом методе . Я знаю, что вы можете сделать это в xdebug.
Это основано на очень простой идее. Предположим, ваша программа делает больше, чем нужно, поэтому ее можно ускорить. На самом деле предположим, что для аргументации он делает в 9 раз больше, чем нужно, поэтому, если он должен был занять 1 секунду, он фактически принимает 10. Те 9 секунд ненужной работы могут быть или не быть полностью смешаны, например сахара и муки.
Хорошо, за эти 10 секунд вы просто нажмете ^ C, чтобы остановить его, а затем внимательно посмотрите, что он делает в этот момент.
Какова вероятность того, что вы поймали его, делая расточительную вещь? На самом деле, маловероятно, что вы не поймали его, делая расточительную вещь.
Если вы не уверены, просто повторите.
Отходы не должны быть такими большими. Фактически, если вы продолжаете делать паузу так, как только видите, что это что-то делает не один раз, если это то, от чего вы можете избавиться, вы получите хорошее ускорение, гарантированное.
Например, если вы приостановите его 5 раз, и вы видите, что он делает что-то, что ему не нужно делать в 2 из этих случаев, сколько вы могли бы сэкономить? Вы точно не знаете, но это будет где-то около 40%. Это может быть всего 20%. Это может быть так же легко, как 60%. Таким образом, вы не знаете, сколько это сэкономит, но вы не выбрасываете золотой самородок только потому, что не знаете, сколько он весит.
Наконец, нет никаких проблем, когда профилировщик может обнаружить, что этого не произойдет. Обратное неверно.