方法断点可能会显著降低调试速度
2022-09-01 09:06:55
每当将断点添加到方法声明的行(在 Intellij IDEA 或 Android Studio 中)时,都会出现一个弹出窗口:
方法断点可能会显著降低调试速度
为什么它会大大减慢调试速度,是我的问题吗?将断点放在函数的第一行上有什么不同?
谢谢!
每当将断点添加到方法声明的行(在 Intellij IDEA 或 Android Studio 中)时,都会出现一个弹出窗口:
方法断点可能会显著降低调试速度
为什么它会大大减慢调试速度,是我的问题吗?将断点放在函数的第一行上有什么不同?
谢谢!
我环顾四周,在Intellij Documetation中看到了这篇文章:
方法断点
方法断点作用于程序进入或退出特定方法。它们允许您按要调查的方法(而不是行号)来定位调试会话。方法断点允许您在方法级别遵循程序流,以及检查进入和退出条件。请注意,使用方法断点可能会降低正在调试的应用程序的速度。
我想它会在程序进入方法之前停止程序,以便您可以在输入方法之前计算参数等。
它急剧减速的原因是(这是我能收集到的,因为这是我在Intellij文档中能找到的方法断点的全部内容),它必须:
让您在方法级别遵循程序流,并检查进入和退出条件
我想这需要比停止程序执行更长的时间。
我的理解是,当在方法条目上设置断点时,代码必须以解释方式运行(而不是使用JIT进行预编译?)。
如果你在方法的第一行设置断点,我怀疑代码中的行号索引可以用来简单地交换原始操作码的中断操作码,以便应用程序全速运行。(在调试;)时,这对我来说似乎仍然很慢