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


81

当我启动intellij调试器时,会出现您可以在屏幕截图中看到的提示。调试器需要很多时间才能启动。如何解决这个问题呢?在此处输入图片说明

Answers:


179

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


24
但是确定删除断点会破坏调试的目的吗?或者我想念一些东西。
2015年

14
@ arush436需要“方法断点”(!=常规断点)的情况数量非常有限。
罗宾

27
那么方法断点和常规断点之间有什么区别?
jrahhali

6
@jrahhali参见方法断点行断点
happy_coder

2
这是指向不同类型的断点的更新链接。
卡梅伦

11

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


如果您看到此消息,则您可能(和我一样)在弹出窗口上单击了“取消模拟”。要重新启用它,请在显示断点处转到断点,然后选中“仿真”。
曼队长

7

来自JetBrains团队的消息:“由于JVM的设计,方法断点将大大降低调试器的速度,评估起来很昂贵。删除方法断点并考虑使用常规的行断点。” 查看更多

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


5

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


5

在此处输入图片说明

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


0

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

当然,如果您尝试调试应用程序启动过程中发生的事情,那将无济于事。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.