XDebug — мощное расширение для отладки php-скриптов, которое написал норвежец Дерик Ретанс (Derick Rethans, www.derickrethans.nl, project leader for the eZ components). Работает как под Windows, так и под Linux, поддерживает версии PHP 4.4.1+, PHP 5.1.2+, PHP 5.2.1+.
Данное расширение предоставляет следующую информацию:
— стэк вызовов функций
— распределение памяти (memory allocation)
— профайлинг
— и т.п.
XDebug, в первую очередь, — хороший и легкий в установке профайлер, помогающий разработчику найти «узкие места» в коде, определить какие части вашего кода работают медленно: запросы к БД, подключение файлов, парсинг чего-либо и т.д.
Профайлинг (от англ. profiling) — оценка времени выполнения кода.
На текущий момент существует две версии профайлера: XDebug и XDebug2. Отличаются они форматом профайл-лога и богатством настроек. Первая версия попроще, настроек мало, формат лога читабельный.
Пример профайл-лога для XDebug (версия 1):
Формат лога:
— Time Taken (время выполнения)
— Number of Calls (кол-во вызовов функции)
— Function Name (имя функции)
— Location (месторасположение с номером строки)
— Total Time (общее время выполнения)
Также существует 8 режимов профайлинга. Описывать не буду, можно посмотреть здесь.
XDebug2 на мой взгляд более интересен, так как позволяет просматривать профайл-лог через специальные утилиты: WinCacheGrind (для Windows) и KCacheGrind (для Linux).
KCacheGrind — более мощная утилита, позволяет визуализировать результаты.
Все настройки профайлера можно разделить на несколько секций:
— основные настройки (GENERAL SETTINGS)
— настройки вывода (DISPLAY SETTINGS)
— настройки трэйсинга (TRACING SETTINGS)
— настройки удаленной отладки (REMOTE DEBUGGER SETTINGS)
— настройки профайлинга (PROFILER SETTINGS)
— настройки дампинга глобальных переменных (SUPERGLOBAL DUMPING SETTINGS)
PS: настоятельно советую всем прочитать интервью с Дериком Ретансом в журнале PHPArchitect (сентябрь, 2004) [pdf, 910Kb]
Данное расширение предоставляет следующую информацию:
— стэк вызовов функций
— распределение памяти (memory allocation)
— профайлинг
— и т.п.
XDebug, в первую очередь, — хороший и легкий в установке профайлер, помогающий разработчику найти «узкие места» в коде, определить какие части вашего кода работают медленно: запросы к БД, подключение файлов, парсинг чего-либо и т.д.
Профайлинг (от англ. profiling) — оценка времени выполнения кода.
На текущий момент существует две версии профайлера: XDebug и XDebug2. Отличаются они форматом профайл-лога и богатством настроек. Первая версия попроще, настроек мало, формат лога читабельный.
Пример профайл-лога для XDebug (версия 1):
Формат лога:
— Time Taken (время выполнения)
— Number of Calls (кол-во вызовов функции)
— Function Name (имя функции)
— Location (месторасположение с номером строки)
— Total Time (общее время выполнения)
Также существует 8 режимов профайлинга. Описывать не буду, можно посмотреть здесь.
XDebug2 на мой взгляд более интересен, так как позволяет просматривать профайл-лог через специальные утилиты: WinCacheGrind (для Windows) и KCacheGrind (для Linux).
KCacheGrind — более мощная утилита, позволяет визуализировать результаты.
Все настройки профайлера можно разделить на несколько секций:
— основные настройки (GENERAL SETTINGS)
— настройки вывода (DISPLAY SETTINGS)
— настройки трэйсинга (TRACING SETTINGS)
— настройки удаленной отладки (REMOTE DEBUGGER SETTINGS)
— настройки профайлинга (PROFILER SETTINGS)
— настройки дампинга глобальных переменных (SUPERGLOBAL DUMPING SETTINGS)
PS: настоятельно советую всем прочитать интервью с Дериком Ретансом в журнале PHPArchitect (сентябрь, 2004) [pdf, 910Kb]