c++ - 发布构建与调试构建性能

标签 c++ performance debugging release

<分区>

发布构建是否总是比调试构建更快(因为发布构建优化很多)?即使我编写了尽可能最快的性能代码?

或者是否可以编写与 Release Build 一样快的 C++ 代码(使用调试)?

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

最佳答案

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

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

关于c++ - 发布构建与调试构建性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25575470/

相关文章:

c++ - 如何在 std::vector 中生成对象而不复制?

c++ - 当日期值是一个简单的无符号短整数时,如何在 Visual Studio Debugger 中显示它

c++ - spirit x3 如何将 vector 添加到 AST

c++ - While Loop 永远持续到输入字符串的结尾

java - 自动装箱与静态数字

iOS Metal 计算管道比搜索任务的 CPU 实现慢

debugging - Windows Phone 8.1 设备 (Lumia 930) 和 VS2013 调试仅适用于禁用 WiFi

objective-c - 从 NSString 调试 EXC_BAD_ACCESS

c++ - 如何在 C++ 中对字符串使用 qsort

c++ - 给定一个节点数为奇数的单链表,通过只遍历链表一次找到中间节点的两种方法是什么?