发布构建与调试构建性能

jer*_*tus 3 c++ debugging performance release

Release Build是否总是比Debug版本更快(因为,版本构建正在优化很多)?,即使我编写了最快的性能代码?

或者是否可以编写C++代码(使用调试),这与发布版本一样快?

我只是好奇我的代码是否太慢,因为当我进行性能测试时,我注意到了一个可观的差异.

Ben*_*igt 12

一个好的算法选择肯定会对调试构建的速度产生很大的影响,但调试版本永远不会那么快.这是因为优化器完全不同地调度寄存器,试图使代码快速运行,而调试编译器试图保留临时变量的值,以便您可以从调试器中读取它们.

由于您可能拥有比CPU寄存器多得多的变量,这意味着调试编译器将发出指令将这些值复制到RAM.在发布版本中,如果不再使用该值,优化器将把它丢弃.