Intellij idea Intellij调试器慢:方法断点可能会显著降低调试速度

Intellij idea Intellij调试器慢:方法断点可能会显著降低调试速度,intellij-idea,Intellij Idea,当我启动intellij调试器时,屏幕截图中会出现提示。 调试器需要很多时间才能启动。如何解决此问题?关闭方法断点。在IDEA 2017.1中,您可以通过运行|查看断点(Ctrl-Shift-F8)查看所有断点。引入了模拟方法断点: 它们允许在不影响性能的情况下使用方法断点。 默认情况下启用。从JETEngy团队:“方法断点会因为JVM设计而使调试器慢很多,它们的评估代价很高。请删除方法断点,并考虑使用常规断点。”看 长话短说,根本问题似乎是通过使用JPDA的方法入口和方法出口功能来实现方法断点

当我启动intellij调试器时,屏幕截图中会出现提示。
调试器需要很多时间才能启动。如何解决此问题?

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

引入了模拟方法断点: 它们允许在不影响性能的情况下使用方法断点。 默认情况下启用。

从JETEngy团队:“方法断点会因为JVM设计而使调试器慢很多,它们的评估代价很高。请删除方法断点,并考虑使用常规断点。”看


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

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


当然,如果您试图调试应用程序启动过程中发生的某些事情,这将毫无帮助。

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


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

但是删除断点肯定会破坏调试的目的吗?或者我遗漏了一些东西。@arush436需要“方法断点”(!=常规断点)的情况非常有限。那么方法断点和常规断点之间有什么区别呢?@jrahhali请看,这里有一个指向不同断点的更新链接。如果您看到此消息,您可能(和我一样)已单击弹出窗口上的“取消模拟”。要重新启用它,请转到“显示断点”中的断点并选中“模拟”。不幸的是,此警告与
onClick
方法中设置的断点一起发出,这些方法是放置断点的非常有用的位置。它们根本不会导致减速。叹气。