Что такое профилирование?
Профилирование – это процесс анализа работы приложения для сбора информации о производительности (сбор набора характеристик – время, использование оперативной памяти и ресурсов процессора, количество вызовов функций и так далее). Соответственно инструмент, который используется для этого, называется профайлером.
Профайлеры в большинстве случаев используют чтобы найти в приложении хот-спот («горячее место», то есть участок кода, время исполнения которого неоправданно длительное), а так же для анализа и оценки качества приложения.
Профилирование PHP –кода
Наиболее известными PHP-профайлерами являются:
Xdebug's Profiler (http://www.xdebug.org/docs/profiler) и XHprof (http://pecl.php.net/package/xhprof). О втором и пойдет речь.
O XHprof
XHprof – это иерархический профайлер для PHP c HTML интерфейсом. Ядро написано на языке С (на уровне отчетов и интерфейса код уже весь на PHP), а для скачки доступно в виде екстеншина для PHP. Этот профайлер умеет собирать данные об использовании памяти, ресурсов процессора, количестве и последовательности вызовов функций, а также inclusive time (время, потраченное на функцию и на все функции, вызванные из нее) и exclusive time(время, потраченное на функцию без учета времени на вложенные функции).
Дополнительно, XHprof поддерживает сравнение двух запусков (иерархический DIFF отчет) и умеет объединять несколько запусков для усреднения данных.
Установка XHprof
С 1 июня 2009 года (версия 0.9.2, начиная с PHP 5.2.0) XHprof предоставляется как PECL-пакет. Между прочим, для Windows не доступен.
Процесс установки:
pecl download xhprof-0.9.2 tar -xvf xhprof-0.9.2.tar.gz cd xhprof-0.9.2/extension phpize ./configure make make install
Далее нужно подключить модуль в php.ini:
extension=xhprof.so xhprof.output_dir=/var/log/xhprof;