XDebug — если при отладке вам надоели echo(), var_dump() и print_r()

XDebug - мощное расширение для отладки php-скриптов, которое написал норвежец Дерик Ретанс (Derick Rethans, http://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 (версия 1):
На текущий момент существует две версии профайлера: XDebug и XDebug2. Отличаются они форматом профайл-лога и богатством настроек. Первая версия попроще, настроек мало, формат лога читабельный.

Пример профайл-лога для XDebug (версия 1):

дебажим с xdebug

Формат лога:

  • Time Taken (время выполнения)
  • Number of Calls (кол-во вызовов функции)
  • Function Name (имя функции)
  • Location (месторасположение с номером строки)
  • Total Time (общее время выполнения)

Также существует 8 режимов профайлинга. Описывать не буду, можно посмотреть здесь. XDebug2 на мой взгляд более интересен, так как позволяет просматривать профайл-лог через специальные утилиты: WinCacheGrind (для Windows) и KCacheGrind (для Linux).

изучаем xdebug

KCacheGrind - более мощная утилита, позволяет визуализировать результаты.

xdebug

Все настройки профайлера можно разделить на несколько секций:

  • основные настройки (GENERAL SETTINGS)
  • настройки вывода (DISPLAY SETTINGS)
  • настройки трэйсинга (TRACING SETTINGS)
  • настройки удаленной отладки (REMOTE DEBUGGER SETTINGS)
  • настройки профайлинга (PROFILER SETTINGS)
  • настройки дампинга глобальных переменных (SUPERGLOBAL DUMPING SETTINGS)

PS: настоятельно советую всем прочитать интервью с Дериком Ретансом в журнале PHPArchitect (сентябрь, 2004) [pdf, 910Kb]

оригинал здесь

оригинал здесь - http://habrahabr.ru/blogs/webdev/7354/