Avatar ·

运算符 < 比 <= 更快?C++ 中的性能比较

大家好!我是一名初学 C++ 的开发者,关于比较运算符的性能我有一个疑问。 我正在编写一个循环,遍历一个包含 1000 万个元素的数组,需要在索引小于或等于某个值时执行某个操作。我使用的是 `for (int i = 0; i <= n; i++)`。但我的同事说最好用 `i < n + 1`,因为运算符 `<` 比 `<=` 更快。他声称在汇编层面上,`<` 只需要一个 CPU 时钟周期,而 `<=` 需要两个,因为 CPU 需要额外检查相等性。 我在代码中尝试了两种方式: ```cpp #include #include const int N = 10000000; void test_less_equal() { int sum = 0; for (int i = 0; i <= N; ++i) { sum += i; } std::cout << sum << std::endl; } void test_less() { int sum = 0; for (int i = 0; i < N + 1; ++i) { sum += i; } std::cout << sum << std::endl; }