Я хочу иметь возможность отлаживать производственные системы с помощью jdwp.для этого я хочу добавить -Xdebug -Xrunjdwp:transport=dt_socket,address=11122,server=y,suspend=n к каждому Java-процессу, который я запускаю. Есть ли какие-либо издержки для этого в случае, если порт не активирован? будет ли моя JVM работать медленнее в этом случае?
-Xdebug -Xrunjdwp:transport=dt_socket,address=11122,server=y,suspend=n
AFAIK, ответ - да. -Xdebug отключает некоторые оптимизации времени выполнения и т. Д.
-Xdebug
Кроме того, тот факт, что возможно подключиться к JVM через jwdp, не очень безопасен. Я не думаю, что какая-либо производственная среда должна позволять это.
Если вы на самом деле не подключаетесь к этому порту с помощью удаленного отладчика, накладные расходы будут почти равны нулю (в моем опыте я этого не заметил).
-Xdebug делает это примерно на 5% медленнее (Java 5, у меня нет номеров для Java 6) в режиме отладки, потому что он не может выполнять некоторые виды оптимизации.
Сама розетка стоит недорого; для него создан поток, который висит в accept() (так что ничего не стоит, пока кто-то не подключится к порту).
accept()