Введение
XHProf — это легковесный профайлер основанный на иерархии и инструментировании. В процессе сбора данных он отслеживает количество вызовов и инклюзивные метрики рёбер динамического графа вызовов программы. Эксклюзивные метрики, такие как затраченное время, время CPU и потребление памяти, расчитываются в фазе репортинга/постпроцессинга. Профилирование функции может быть сломано вызывающими или вызываемыми функциями. XHProf отслеживает рекурсивные функции путём анализа циклов в графе вызовов в момент сбора данных и избегает зацикленности путём назначения уникальных имён на основе глубины для рекурсивных вызовов.
XHProf содержит простой HTML интерфейс (написанный на PHP). UI на основе браузера сильно облегчает просмотр результатов и пересылку их всем желающим. Также поддерживается графическое отображение графа вызовов.
Отчёты XHProf часто полезны для анализа структуры запускаемого кода. Иерархическая структура отчётов позволяет определить, к примеру, цепочку вызовов, приведшую к вызову конкретной функции.
XHProf поддерживает сравнение двух разных запусков ("diff") или аггрегацию данных нескольких запусков. Сравнительные и аггрегированные отчёты, также как одиночные, предоставляют как "плоские", так и "иерархические" взгляды на результаты профилирования.
Дополнительная документация доступна на сайте » facebook xhprof.