【问题标题】:Intellij Debugger slow: Method breakpoints may dramatically slow down debuggingIntellij Debugger 速度慢:方法断点可能会大大减慢调试速度
【发布时间】:2021-07-07 15:49:21
【问题描述】:

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

【问题讨论】:

    标签: intellij-idea


    【解决方案1】:

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

    【讨论】:

    • 但是删除断点肯定会破坏调试的目的吗?或者我错过了什么。
    • @arush436 需要“方法断点”(!= 常规断点)的情况非常有限。
    • 那么方法断点和常规断点有什么区别?
    • 这里是不同types of breakpoints的更新链接。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      在 IDEA 2017.1 中引入了模拟方法断点:https://www.jetbrains.com/help/idea/using-breakpoints.html#method_breakpoint 它们允许在没有性能损失的情况下使用方法断点。 默认启用。

      【讨论】:

      • 如果您看到此消息,您可能(像我一样)在弹出窗口上单击了“取消仿真”。要重新启用它,请转到 show-breakpoints 中的断点并选中“Emulated”。
      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        • 不幸的是,在onClick 方法中设置断点时,此警告会消失,这些方法非常有用 可以放置断点。而且它们根本不会导致减速。叹息。
        【解决方案6】:

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

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

        【讨论】:

        • 谢谢你这解决了我的问题。我不小心在接口类中添加了方法断点。我只是浪费了 8 个小时来挠头,安装新版本的 IntelliJ。你的帖子帮助了我:-)
        【解决方案7】:

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

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

        【讨论】:

          【解决方案8】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2010-11-17
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-09-10
            • 2020-12-07
            • 1970-01-01
            相关资源
            最近更新 更多