Java: будет JDWP замедлить производительность? - PullRequest
0 голосов
/ 04 июля 2018

Как известно, после jdk 5 нет необходимости указывать -Xdebug для отладки, вместо этого используйте -agentlib:jdwp, но означает ли это, что режим отладки исчез? И означает ли это, что java-программа будет работать в обычном режиме без какого-либо компромисса с производительностью, в то время как вы все равно сможете присоединить ее в любое время, когда захотите ее отладить?

По сравнению с C / C ++ вы можете отлаживать приложение, скомпилированное в оптимизированном режиме, если вы не удаляете символы отладки, хотя в оптимизированном режиме отладка не так точна, например, из-за того, что некоторая функция встроена или исключена. Итак, кстати, есть ли в java концепция отладочных символов / информации, когда вам нужно позаботиться о создании приложения?

1 Ответ

0 голосов
/ 04 июля 2018

Как известно, после jdk 5 нет необходимости указывать -Xdebug для отладки, вместо этого используйте -agentlib: jdwp, но означает ли это, что режим отладки исчез?

Да. Старый отладочный режим исчез. (Параметр -Xdebug игнорируется современными JVM.)

И означает ли это, что Java-программа будет работать в обычном режиме без какого-либо компромисса с производительностью, в то время как вы все равно можете присоединить ее в любое время, когда захотите ее отладить?

См. Издержки, связанные с включением JVMTI * возможности * для запроса локальных переменных , например.

Существует некоторый компромисс производительности 1 , но меньше, чем с -Xdebug. Агент JVMTI подавляет некоторые оптимизации JIT-компилятора, но не все.

Есть ли в java концепция отладочных символов / информации, когда вам нужно позаботиться о создании приложения?

Да, это так. См. Параметр -g для javac.


1 - Большинство источников говорят, что стоимость мала или незначительна, но я видел комментарий, который требовал 10-кратного снижения производительности. Не ясно, стоило ли это -agentlib:jdwp ... или что комментатор делал с агентом. Например, если вы включите трассировку входа / выхода, затраты производительности будут значительными. К сожалению, это все анекдотично ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...