<分区>
发布构建是否总是比调试构建更快(因为发布构建优化很多)?即使我编写了尽可能最快的性能代码?
或者是否可以编写与 Release Build 一样快的 C++ 代码(使用调试)?
我只是好奇我的代码是否太慢了,因为当我进行性能测试时,我注意到了一个相当大的差异。
<分区>
发布构建是否总是比调试构建更快(因为发布构建优化很多)?即使我编写了尽可能最快的性能代码?
或者是否可以编写与 Release Build 一样快的 C++ 代码(使用调试)?
我只是好奇我的代码是否太慢了,因为当我进行性能测试时,我注意到了一个相当大的差异。
最佳答案
一个好的算法选择肯定会对调试构建的速度产生很大的影响,但调试构建永远不会那么快。这是因为优化器以完全不同的方式安排寄存器,试图让代码运行得更快,而调试编译器试图保留临时变量的值,以便您可以从调试器读取它们。
由于您可能有比 CPU 寄存器更多的变量,这意味着调试编译器将发出指令将这些值复制到 RAM。在发布版本中,如果不再使用该值,优化器会将其丢弃。
关于c++ - 发布构建与调试构建性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25575470/