XDebug очень медленный

Я пытаюсь заставить XDebug работать с моей локальной установкой wamp (Uniform Server 8).

Однако когда я установил
xdebug.remote_enable=1

в моем php.ini, который требуется моей IDE для использования xdebug, загрузка страниц становится очень медленной, так как 5 секунд на страницу медленнее. Хотя отладчик работает.

Я раньше не использовал xdebug, но могу себе представить, что обычно это не должно занимать так много времени. Я почти уверен, что это может быть как-то связано с использованием фреймворка symfony2.

Кто-нибудь знает, что вызывает это?


person Geoffrey De Vylder    schedule 30.12.2011    source источник
comment
я заметил из профилировщика symfony, что большое замедление происходит в событии firewall....   -  person Ascherer    schedule 03.10.2012
comment
Подумайте об использовании Linux ;) Я был поражен, обнаружив, что Symfony работает примерно в 10 раз быстрее. Средняя загрузка страницы в более крупном проекте в Windows составляла раздражающие 8 секунд, в то время как в Linux то же самое приложение, та же страница занимает всего 800 мс. Добавление xdebug в Linux очень просто, и вы почти не заметите разницы в производительности.   -  person Rein Baarsma    schedule 07.05.2019
comment
Я использую Linux, и все было хорошо и быстро, но вдруг xdebug замедлился. Я должен буквально нажать паузу, потому что перешагнуть больше не работает. Не знаю, почему.   -  person geoidesic    schedule 01.08.2020


Ответы (2)


Может быть, потому что это то, что он делает!

Проверьте место хранения по умолчанию для журналов xdebug (чаще всего /tmp/xdebug/something), которое в Windows было бы чем-то другим, чем в системах unix/linux.

установите их в свой php.ini, если вы хотите, чтобы они были размещены/названы в другом месте:

xdebug.profiler_output_dir Тип: строка, значение по умолчанию: /tmp Каталог, в который будут записываться выходные данные профилировщика. Убедитесь, что пользователь, от имени которого будет работать PHP, имеет права на запись в этот каталог. Этот параметр нельзя установить в вашем скрипте с помощью ini_set().

xdebug.profiler_output_name Тип: строка, значение по умолчанию: cachegrind.out.%p

Этот параметр определяет имя файла, в который заносятся трассировки. Параметр определяет формат с помощью спецификаторов формата, очень похожих на sprintf() и strftime(). Существует несколько спецификаторов формата, которые можно использовать для форматирования имени файла.

Создание этих файлов обременительно для вашей системы. Но это то, что вам нужно для профилирования вашего кода.

Также прочитайте http://xdebug.org/docs, прежде чем использовать его снова, чтобы знать, что именно вам нужно. пытаются сделать.

person ktolis    schedule 30.12.2011
comment
Ну, я знаю, для чего используется xdebug, и я планирую использовать его только для того, чтобы иметь возможность устанавливать точки останова для отладки моего кода. Я отключил профилировщик, но он все еще медленный. Мой вопрос заключался в том, что может быть причиной этой медлительности, а не в том, как я настроил профилировщик. - person Geoffrey De Vylder; 02.01.2012
comment
Профилировщик не имеет ничего общего с удаленным отладчиком. Отладчик замедляет работу, но не так. - person Derick; 11.01.2012
comment
@geoffreydv Если вы используете отладчик/профилировщик, вы постоянно пишете на диск. Это ваше узкое место. Вы не можете избежать этого. - person ktolis; 18.01.2012
comment
Использование Virtualbox, похоже, не записывает на диск, но все равно очень медленно. - person arieltools; 20.05.2012
comment
@arieltools, не могли бы вы уточнить, что вы имеете в виду, говоря, что использование Virtualbox не записывает на диск? Это кажется неправильным, поскольку оно записывает данные, как и любое другое приложение. - person Arkadiusz 'flies' Rzadkowolski; 27.09.2012
comment
У меня такая же проблема, и у меня не включен профилировщик. Так что проблема не в профайлере. Я читал, что это может иметь какое-то отношение к ipv6, но пока не смог решить эту проблему. - person computrius; 21.01.2014

В соответствии с другим ответом на SO вам нужно установить xdebug.remote_autostart = 0 в вашем php.ini

person Geoff Kendall    schedule 05.05.2019