我希望能够使用jdwp调试生产系统。
为此,我想在我开始的每个java进程中添加-Xdebug -Xrunjdwp:transport=dt_socket,address=11122,server=y,suspend=n
如果端口未激活,是否有任何开销?
在这种情况下,我的JVM会运行得更慢吗?
答案 0 :(得分:3)
AFAIK,答案是肯定的。
-Xdebug
关闭了一些运行时优化等等。
此外,可以通过jwdp连接到JVM的事实并不是很安全。我认为任何生产环境都不允许这样做。
答案 1 :(得分:2)
如果你实际上没有使用远程调试器连接到这个端口,开销几乎为零(根据我的经验,从未注意到它)。
答案 2 :(得分:1)
-Xdebug
使得它在调试模式下慢了约5%(Java 5,我没有Java 6的数字),因为它无法进行某些优化。
插座本身不会花费太多;有一个为它创建的线程挂起accept()
(所以在有人实际连接到端口之前不会花费任何费用。)