First, to strictly answer your question - at least as stated in its title - -Xdebug
only enables debugging support in the VM using JVMDI in JVMs prior to 5.0. So in itself, it doesn't do much. Moreover, JVMDI is deprecated since 5.0 in favor of JVMTI:
-Xdebug
Start with support for JVMDI enabled. JVMDI has been deprecated and is not used for debugging in J2SE 5.0, so this option isn't needed for debugging in J2SE 5.0.
So -Xdebug doesn't do anything anymore and the important part is:
-Xrunjdwp:<name1>[=<value1>],<name2>[=<value2>]...
or, starting with Java 5.0, the newer (that you should prefer as the JDWP agent in 5.0 uses the JVM TI interface to the VM rather than the older JVMDI interface):
--agentlib:jdwp=<name1>[=<value1>],<name2>[=<value2>]...
Now, to my knowledge, just loading the jwdp agent and/or configuring the JVM to listen
for a socket connection on a given port don't have any noticeable performance impact. But connecting a debugger does.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…