Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 导致JVM爬网的多线程方法入口断点_Java_Eclipse_Debugging_Breakpoints_Remote Debugging - Fatal编程技术网

Java 导致JVM爬网的多线程方法入口断点

Java 导致JVM爬网的多线程方法入口断点,java,eclipse,debugging,breakpoints,remote-debugging,Java,Eclipse,Debugging,Breakpoints,Remote Debugging,在调试一个java进程(通常在90秒内准备就绪)时,我的服务器应用程序在10分钟后一直超时,因为我在断点有机会跳闸之前设置了一个方法入口断点 根据对这个SO问题的公认答案,这至少部分是由于在设置入口断点时禁用了Hotspot JIT编译器。 然而,我的JVM运行速度似乎慢了几个数量级。我调试的进程是多线程的,我通过eclipse进行远程调试。设置入口断点时查看任务管理器显示,一个内核执行的工作比其他内核多得多。移除断点后,内核之间的负载更加均匀 虽然JIT编译被禁用至少可以解释其中的一些慢度,

在调试一个java进程(通常在90秒内准备就绪)时,我的服务器应用程序在10分钟后一直超时,因为我在断点有机会跳闸之前设置了一个方法入口断点

根据对这个SO问题的公认答案,这至少部分是由于在设置入口断点时禁用了Hotspot JIT编译器。

然而,我的JVM运行速度似乎慢了几个数量级。我调试的进程是多线程的,我通过eclipse进行远程调试。设置入口断点时查看任务管理器显示,一个内核执行的工作比其他内核多得多。移除断点后,内核之间的负载更加均匀


虽然JIT编译被禁用至少可以解释其中的一些慢度,但我想知道是否每个方法调用的方法入口断点都会与调试器进程进行检查,从而导致每个方法调用的远程调试器进程上的线程同步。对我来说,这可能会导致比JIT损失更严重的减速。

我认为方法入口断点不应该导致检查所有调用,我还没有读到任何明确证实这种行为的内容

Java调试接口在遇到任何断点时提供事件线程暂停策略,我想您可能已经知道这些策略。我预计整个工作线程的数量会下降,可能比您预期的更多的线程被挂起,因此总体吞吐量会显著下降


另外,由于您进行了远程调试,网络是否有可能出现延迟等情况?

断点是否存在条件?提供一些代码片段,这将更容易回答:)断点没有条件。不确定哪种代码片段会有帮助。这不是代码问题:我问的是JVM的内部工作。