是否有设置JVM来监听调试端口的开销?

时间:2011-06-27 09:35:17

标签: java jvm remote-debugging

我希望能够使用jdwp调试生产系统。 为此,我想在我开始的每个java进程中添加-Xdebug -Xrunjdwp:transport=dt_socket,address=11122,server=y,suspend=n 如果端口未激活,是否有任何开销? 在这种情况下,我的JVM会运行得更慢吗?

3 个答案:

答案 0 :(得分:3)

AFAIK,答案是肯定的。 -Xdebug关闭了一些运行时优化等等。

此外,可以通过jwdp连接到JVM的事实并不是很安全。我认为任何生产环境都不允许这样做。

答案 1 :(得分:2)

如果你实际上没有使用远程调试器连接到这个端口,开销几乎为零(根据我的经验,从未注意到它)。

答案 2 :(得分:1)

-Xdebug使得它在调试模式下慢了约5%(Java 5,我没有Java 6的数字),因为它无法进行某些优化。

插座本身不会花费太多;有一个为它创建的线程挂起accept()(所以在有人实际连接到端口之前不会花费任何费用。)