Інструменти для візуалізації логів профайлера xdebug

Напевно багато php розробників використовують профайлер xdebug для пошуку вузьких місць в своїх аплікухах. Але просто дивитися логи не зручно, тому були створені інструменти для їх візуалізації. Про них я розповім.

Webgrind

Webgrind це набір php скриптів, які можна поставити на локальний чи віддалений веб сервер. Далі все просто – закачуємо лог і дивимося статистику.
image
Найочевидніший плюс Webgrind’а це мультиплатформенність і простота встановлення.
Показує список функцій які викликалась, кількість викликів (Invocation Count), загальний час витрачений на виклик (Total Self Cost) і загальний час витрачений на виконання (Total Inclusive Cost).
Можна приховати php функції. Можна перейти всередину функції, щоб побачити розгорнуту статистику.

KCachegrind

Для роботи KCachegrind потрібні бібліотеки 3-го KDE. Буде працювати у більшості Unix-подібних ОС (в мене точно працює в Ubuntu і FreeBSD), а також Windows (через Cygwin) і MacOS X (я не перевіряв). Це мабуть найфункціональніший і найзручніший інструмент для визуалізації профайлів.

image
Видно виклики функцій, час, а також можна подивитись граф викликів (дуже зручно) і карту (інколи теж зручно).

WinCacheGrind

WinCacheGrind це обрізаний KCachegrind для Windows. Звісно можна спробувати запустить на віртуальній машині під іншими ОС, але я не бачу в тому сенсу. З функціоналу доступний перегляд викликів функцій, також можна приховати швидко працюючі функції.
image

xdebugtoolkit

Якщо про вищеперераховані інструменти ви мабуть знали, то про xdebugtoolkit, швидше за все, чуєте вперше :). Він дозволяє візуалізовувати ось такі графи:

image

image
Взагалі, якщо дуу-у-же не хочеться тягнути в систему KDE либи для установки KCachegrind, то можна використовувати xdebugtoolkit в парі з Webgrind.

MacCallGrind

Визуалізатор для MacOS X. Я його не використовував (з MacOS X майже не працював). Виглядає ось так:

image
Інтерфейс схожий на WinCacheGrind. Судячи з опису функціонал аналогічний.

CachegrindVisualizer

Це вітчизняна 🙂 розробка хабраюзера “Develar”. Працює на Adobe AIR. Скріншот дуже великий, ось лінк. И цитата з опису:

CachegrindVisualizer строит более информативный граф, чем KCacheGrind — на острие ребра есть метка, набранная шрифтом меньшего размера, — это собственное время (self time) затраченное на выполнение этой функции, — собственное время выполнения именно этого вызова, а не всех вызовов данной функции.

Виглядає непогано.

Післямова
Як я і обіцяв опис короткий. З більшістю цих аплікух я працював давно. Зараз використовую KCachegrind, як найбільш зручний і функціональний інструмент.

PS. Щоб увімкнути профайлер в xdebug треба прописати “xdebug.profiler_enable = 1” в php.ini :).

UPD. На Хабрі є переклад статті про профілювання коду з допомогою xdebug Profiling PHP Applications With xdebug. У ній більш докладно розписана робота з WinCacheGrind і KCachegrind.

2 thoughts on “Інструменти для візуалізації логів профайлера xdebug

  1. На даний момент використовую Zend Debugger. Зіштовхнувся з тим, що він вимагає тільки non-thread-safe версію PHP. Відповідно про використання Apache гілки 2.х можна забути (мова звісно ж про Віндовс).
    З xdebug таких проблем немає? Працює з ts і nts версіями РНР?

Leave a Reply

Your email address will not be published. Required fields are marked *