Що таке профілювання?
Профілювання - це процес аналізу роботи додатку для збору інформації про продуктивність (збір набору характеристик - час, використання оперативної пам'яті і ресурсів процесора, кількість викликів функцій і так далі). Відповідно інструмент, який використовується для цього, називається профайлером.
Профайлери в більшості випадків використовують щоб знайти хот-спот в додатку ("гаряче місце", тобто ділянка коду, час виконання якого невиправдано великий), а також для аналізу і оцінки якості додатку.
Профілювання PHP-коду
Найбільш відомими PHP-профайлерами є:
Xdebg's Profiler (http://www.xdebug.org/docs/profiler), i XHprof (http://pecl.php.net/package/xhprof). Про другий і піде мова.
Про XHprof
XHprof - це ієрархічний профайлер для PHP з 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;