Могу ли я вручную указать на профилировщике xdebug, чтобы начать профилирование в определенном месте?
Я уже включил профилирование xDebug в моей установке XAMPP, и он отлично работает.
Теперь мне нравится спрашивать, есть ли способ сказать из моего исходного кода, когда начинать профилирование с помощью xDebug.
Более конкретно, я бы хотел создать плагин WordPress, и я хотел бы сказать, начните профилирование с начальной точки плагина и прекратите профилирование в конечной точке плагина.
Возможно ли это?
Примечание. Вышеприведенное является просто примером. Это может быть плагин CakePHP или новый PHP-класс, который мне может понадобиться для профиля
Ответы
Ответ 1
Изменить: на Как включить/выключить Xdebug Profiling во время выполнения? вы не можете включить/отключить во время выполнения (например, для вызова функции).
Вы можете выборочно включать профилировщик на запрос, что обычно лучше.
Для достижения такого поведения установите следующие настройки:
xdebug.profiler_enable_trigger=1
xdebug.profiler_enable=0
Обратите внимание, что мы отключили профайлер и включили только триггер.
Из вашего браузера передайте XDEBUG_PROFILE = 1
http://example.com/file.php?XDEBUG_PROFILE=1
Вы также можете передать этот параметр в POST или COOKIE. Для получения дополнительной информации
Ответ 2
Как заявил Лайт, вы не можете выбрать, когда вы хотите, чтобы xDebug начал профилирование и когда вы хотите, чтобы он остановился. Но, еще одна функция xDebug предлагает такую гибкость: трассировку.
Профилирование и трассировка - это не совсем то же самое, но если вы закончите здесь, возможно, что трасса может удовлетворить ваши потребности.
Чтобы начать трассировку, вы должны использовать эту функцию:
xdebug_start_trace()
Чтобы остановить трассировку, вы должны использовать эту функцию:
xdebug_stop_trace()
Существует множество настроек, которые вы можете использовать для изменения поведения трассировки:
http://xdebug.org/docs/execution_trace