运算符 < 比 <= 更快?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;
}