Можно ли вручную указать на профилировщике xdebug запуск профилирования в определенном месте? - PullRequest
32 голосов
/ 10 ноября 2011

Я уже включил профилирование xDebug в моей установке XAMPP, и оно отлично работает.

Теперь я хотел бы спросить, можно ли из моего исходного кода сказать, когда начинать профилирование с помощью xDebug.

Более конкретно, я хотел бы создать плагин WordPress, и я бы хотел сказать, начать профилирование с начальной точки плагина и прекратить профилирование в конечной точке плагина.

Возможно ли это?

Примечание. Выше приведен только пример. Это может быть плагин CakePHP или новый класс PHP, который мне может понадобиться для профилирования

Ответы [ 2 ]

51 голосов
/ 10 ноября 2011

Редактировать: за Как включить / выключить профилирование Xdebug во время выполнения? вы не можете фактически включить / отключить во время выполнения (например, для каждого вызова функции).

Вы можете выборочно включать профилировщик для каждого запроса, что обычно лучше. Для достижения этого поведения установите эти параметры:

xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0

Обратите внимание, что мы отключаем профилировщик и включаем только триггер. От вашего браузера передайте XDEBUG_PROFILE = 1

http://example.com/file.php?XDEBUG_PROFILE=1

Вы также можете передать этот параметр в POST или COOKIE. Для получения дополнительной информации проверьте

  1. http://xdebug.org/docs/profiler#starting
  2. http://xdebug.org/docs/all_settings#profiler_enable_trigger
5 голосов
/ 17 мая 2015

Как утверждает Лейт, вы не можете выбирать, когда вы хотите, чтобы xDebug начал профилирование, и когда вы хотите, чтобы он остановился. Но другая функция xDebug предлагает такую ​​гибкость: trace.

Профилирование и трассировка - это не одно и то же, но если вы окажетесь здесь, возможно, трассировка подойдет вам.

Чтобы начать трассировку, вы должны использовать эту функцию: xdebug_start_trace()

Чтобы остановить трассировку, вы должны использовать эту функцию: xdebug_stop_trace()

Существует довольно много настроек, которые можно использовать для изменения поведения трассировки:

http://xdebug.org/docs/execution_trace

...