为什么在VS中,调试模式比发布模式慢?

8

我已经通过谷歌搜索了相关问题,但通常回答的内容过于复杂,我并不理解其中的行话术语。为什么调试模式会如此缓慢?为什么不能一直使用发布模式?您能给出简单的解释吗?

1个回答

13

调试模式关闭了所有的优化,以确保连接的调试器按预期工作。发布版本将开启很多优化。

我不能再更简单地表述了。


优化是否会在某些情况下干扰代码的执行? - IAmBatman
是的。死代码将被删除,循环可以进行优化等等。但这并不属于“简单解释”的范畴 ;-). - Bart Friederichs
1
在调试版本和发布版本之间可能存在许多微妙的差异。除了Bart提到的内容外,还有调试堆、变量的零初始化、由于速度差异可能导致的竞争条件、使用诊断调试代码等。调试版本明显较慢的主要原因之一是由于这些额外的诊断。 - the_mandrill
1
关于为什么要在调试模式下运行,原因是那些额外的诊断信息会执行许多有用的操作,帮助您捕获程序中的错误,从而使发布版本的工作更加稳定。不要因为调试构建速度太慢或出现您不理解的错误而放弃调试构建。 - the_mandrill
Bart,请谈谈调试符号和PDB,以及这是否与发行版运行速度比调试版本更快有关。 - The Vivandiere

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接