c++ - 重新安排条件评估会加速循环吗?

标签 c++ optimization micro-optimization premature-optimization

有点奇怪:一位 friend 不久前告诉我,重新安排这个示例 for 循环来自:

for(int i = 0; i < constant; ++i) {
    // code...
}

到:

for(int i = 0; constant > i; ++i) {
    // code...
}

会略微提高 C++ 的性能。我看不出将常量值与变量进行比较比反之亦然更快,而且我运行的一些基本测试没有显示两种实现之间的速度有任何差异。测试这个 Python while 循环也是如此:

while i < constant:
    # code...
    i += 1

对比:

while constant > i:
    # code...
    i += 1

我错了吗?我的简单测试不足以确定速度变化吗?其他语言也是这样吗?或者这只是一个新的最佳实践?

最佳答案

它更像是 C++ 的民间传说,手动微优化曾经在特定编译器的特定版本上工作过,然后作为某种传说将拥有者与普通群体区分开来。太垃圾了剖析是真理。

关于c++ - 重新安排条件评估会加速循环吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/734158/

相关文章:

optimization - CUDA中的共享存储库冲突: How memory is aligned to banks

php - 优化php中的大导入

c++ - 微优化指针 + 无符号 + 1

assembly - Haswell/Skylake 上的部分寄存器究竟如何执行?写AL好像对RAX有假依赖,AH不一致

c++: 无法实例化 std::set 模板类

c++ - oid 将 double* 转换为 double

java - 使用 Properties 类加载 map

java - Android 性能 - 'Avoid Internal Getters/Setters'

c++ - Dev cpp 中没有错误窗口

c++ - 如何获取 OCaml 链接器标志以与 C++ cmake 构建链接