Intellij Debugger slow:方法断点可能会大大减慢调试速度

Ron*_*ald 59 intellij-idea

当我启动intellij调试器时,它会显示在屏幕截图中可以看到的提示.调试器需要很长时间才能启动.如何解决这个问题呢?在此输入图像描述

Rob*_*bin 130

关闭方法断点.您可以通过Run |查看所有断点 查看断点(Ctrl - Shift -F8)

  • 那么方法断点和常规断点之间有什么区别? (19认同)
  • 但是肯定删除你的断点会破坏调试的目的吗?或者我错过了什么. (17认同)
  • @ arush436需要"方法断点"(!=常规断点)的情况非常有限. (8认同)
  • 这是不同[断点类型](https://www.jetbrains.com/help/idea/using-breakpoints.html#breakpoint-types)的更新链接。 (7认同)
  • @jrahhali参见[方法断点](https://www.jetbrains.com/help/idea/types-of-breakpoints.html#method_breakpoint)和[Line breakpoint](https://www.jetbrains.com/help/想法/类型-的-breakpoints.html#d1012784e109) (5认同)

Che*_*tan 14

在此处输入图片说明

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


nho*_*ass 8

来自 JetBrains 团队:“由于 JVM 设计,方法断点会大大降低调试器的速度,评估它们的成本很高。删除方法断点并考虑使用常规行断点。”。查看更多

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


Ego*_*gor 6

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

  • 如果您看到此消息,您可能(像我一样)在弹出窗口中单击了“取消模拟”。要重新启用它,请转到 show-breakpoints 中的断点并选中“Emulated”。 (2认同)

bla*_*ade 6

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


Ric*_*chi 6

method name line就我而言,我使用 Android Studio,当我在(称为)上设置断点时Java Method Break-Point,Android Studio 向我显示此警告,并且调试速度非常慢...

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

在此输入图像描述

在此输入图像描述