【问题标题】:Java remote debugging - performance [duplicate]Java远程调试-性能[重复]
【发布时间】:2017-01-20 21:20:40
【问题描述】:

如果您启动一个通过 jdwp/socket 启用远程调试的 java 进程并且没有外部进程连接,是否会对性能造成影响?我确实知道当有一个远程客户端实际调试时会有很大的影响,但是如果我只是在特定端口上声明 jdwp,它本身会减慢应用程序的速度吗?任何文档链接将不胜感激。

【问题讨论】:

    标签: java remote-debugging jdwp


    【解决方案1】:

    ,只要没有外部进程连接,仅启用调试端口就不会影响运行时性能。

    JDWP 是用于调试器与其调试的 Java 虚拟机 (VM) 之间通信的协议。 JDWP 是可选的

    JDWP 启动 - 建立传输连接后,在发送任何数据包之前,连接两端之间会发生握手:

    握手过程有以下步骤:

    1. 调试器端向VM端发送14个字节,由字符串“JDWP-Handshake”的14个ASCII字符组成。
    2. VM 端回复相同的 14 个字节:JDWP-Handshake

    在 Java SE 1.4 中,Java HotSpot 虚拟机现在使用“全速调试

    在以前的 HotSpot 版本中,启用调试时,程序仅使用解释器执行。现在,HotSpot 技术的全部性能优势可用于在启用调试的情况下运行的程序。改进的性能使长时间运行的程序更容易调试。它还允许测试全速进行,并在异常时启动调试器:

    有关 JDWP 增强功能的更多详细信息,请参阅http://docs.oracle.com/javase/1.5.0/docs/guide/jpda/jdwp-spec.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-28
      • 2013-01-29
      • 2016-05-18
      相关资源
      最近更新 更多