方法签名上的断点与方法中第一行上的断点之间的差异



在IntelliJ Idea中调试时,如果我在方法签名上设置了断点,它会警告我性能缓慢。然而,我所做的只是把它放在函数的第一行可执行代码中,它对我的目的来说很好。

我的理解是,如果我看到函数,我肯定会在函数内的第一行可执行代码之前看到,但IntelliJ不同意。我希望看到这两种不同的调试方法有什么不同?

使用方法断点会导致每次调用方法时都需要进行检查,以确定是否需要为应用程序上的每次方法调用中断该方法。它们还禁用JVM优化,例如方法内联。

无论如何,这个问题与IDEA无关,甚至可能适用于其他编程语言。

我面前没有IntelliJ IDEA,但根据文档,我认为使用方法断点并不是真正进入方法实现,而是逐步进行方法调用。这可能是性能影响的原因,因为IDEA必须遍历调用方堆栈,而在出现行断点的情况下,在单个方法中只遍历代码行。

相关内容

最新更新