Профайлинг xDebug

Думаю многие программисты занимаются профайлингом. Это заметка для новичков как установить профайлер xDebug. 

Предполагается, что у вас:
- Операционная системы Ubuntu 12.04
- Установлен Apache2.
- Установлен PHP 5.3 или выше.
- Установлен xDebug.

Открываем php.ini:
sudo gedit /etc/php5/apache2/php.ini
Находим блок конфигурации xDebug и к существующей конфигурации добавляем:

xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir = "/home/xdebug/cachegrid"
xdebug.profiler_output_name = "cachegrind.out.%t.%s"

Первая строка обеспечивает запуск профайлера только в том случае когда через GET/POST передается параметр XDEBUG_PROFILE. Например, http://localhost/samplepage.php?XDEBUG_PROFILE.
Вторая строка говорит xDebug куда складировать логи профайлинга. Дальше из этой папки мы будем брать их для анализа.
Последняя строка это имя формируемого лога. Ключи %t и %s, это временная метка и имя файла (включающее полный путь, слеши конвертируются в знаки подчеркивания) соответственно.

Полностью о конфигурировании xDebug можете посмотреть тут.

Сохраняем php.ini. Даем права записи на указанную директорию. Перезапускаем веб-сервер.

Теперь нам нужен инструмент для визуализации логов профайлера xDebug. Их много, например, KCachegrindWebgrind и т.д.
Я использую Webgrind, так как он самый простой, кроссплатформенный и очень легко установить.

Для того чтобы установить, нужно сделать следующее:
Скачать Webgind
- распаковать в директорию вебсервера, и настроить, чтобы был к нему доступ
- Открыть файл конфигурации config.php и отредактировать так, чтобы в переменной $storageDir был путь к директории куда будет складывать свои файлы Webgind, а в переменной $profilerDir был путь к лог файлам профайлера xDebug.

Пример:

static $storageDir = '/home/hosts/mytest/webgrind/storage';
static $profilerDir = '/home/xdebug/cachegrid';

комментарии (0)