Intellij Debugger 慢:方法断点可能会显着降低调试速度

Intellij Debugger slow: Method breakpoints may dramatically slow down debugging

当我启动 intellij 调试器时,它会出现您可以在屏幕截图中看到的提示。 调试器需要很长时间才能启动。如何解决这个问题?

关闭方法断点。你可以通过 运行 查看你所有的断点 |查看断点 (Ctrl - Shift -F8 )

在 IDEA 2017.1 中引入了仿真方法断点:https://www.jetbrains.com/help/idea/using-breakpoints.html#method_breakpoint 它们允许使用方法断点而不会降低性能。 默认启用。

来自 JetBrains 团队:"Method breakpoints will slow down debugger a lot because of the JVM design, they are expensive to evaluate. Remove method breakpoints and consider using the regular line breakpoints."。参见 more

长话短说,似乎根本问题是方法断点是通过使用JPDA方法入口[=22=实现的] & 方法退出 功能。此实现要求 JVM 在每次 any 线程进入 any 方法和 any 线程时触发一个事件退出 any 方法。

我遵循的实用建议: 1.在应用程序启动时关闭所有断点 2. 仅在调试该流程时启用断点。

当然,如果您尝试调试在应用程序启动期间发生的某些事情,这将无济于事。

在您的代码中寻找红色菱形图标(不是红色圆圈),它们代表方法断点。您很可能在 Kotlin 中的 get()/set() 方法中设置了它们。

从调试面板关闭方法断点。 这是截图。

在我的例子中,我使用了 Android Studio,当我在 method name line(称为 Java Method Break-Point)上设置断点时,Android Studio 向我展示了这个警告和调试太慢了...

removing this Break-Point 我的问题解决了...

查看断点 - (Ctrl - Shift -F8 ) 删除所有方法断点。 在调试模式下重新运行应用程序。 它的工作 f