Я понимаю, что код Java замедлится, когда выполнено в отладчике.
Вопрос, будет код замедляться просто стартовым Java с этими опциями:
Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n
??
Или замедление только происходит, когда Вы соединяетесь с "портом отладки" и на самом деле ступаете через код с помощью IDE?
Во-первых, чтобы строго ответить на ваш вопрос - по крайней мере, как указано в его заголовке - -Xdebug
только включает поддержку отладки в виртуальной машине с использованием JVMDI в JVM до версии 5.0. Так что само по себе это мало что делает. Более того, JVMDI устарел с версии 5.0 в пользу JVMTI :
- Xdebug
Начать с поддержкой JVMDI . JVMDI устарел и не используется для отладки в J2SE 5.0, поэтому этот параметр не требуется для отладки в J2SE 5.0.
Итак, -Xdebug больше ничего не делает, и важная часть:
-Xrunjdwp:<name1>[=<value1>],<name2>[=<value2>]...
или, начиная с Java 5.0, более новая (что вам следует предпочесть, поскольку агент JDWP в 5.0 использует интерфейс JVM TI для виртуальной машины, а не чем более старый интерфейс JVMDI):
--agentlib:jdwp=<name1>[=<value1>],<name2>[=<value2>]...
Теперь, насколько мне известно, просто загрузка агента jwdp и / или настройка JVM для прослушивания сокетного соединения на заданном порту не t оказывают заметное влияние на производительность. Но подключение отладчика делает.
Нет, простое включение порта отладки никак не повлияет на производительность во время выполнения. По крайней мере, я такого не замечал.
..