Operador < é mais rápido que <=? Comparação de desempenho em C++
Olá a todos! Sou um desenvolvedor C++ iniciante e tenho uma dúvida sobre o desempenho dos operadores de comparação.
Estou escrevendo um loop que percorre um array de 10 milhões de elementos e preciso executar alguma ação enquanto o índice for menor ou igual a um determinado valor. Estou usando `for (int i = 0; i <= n; i++)`. Mas meu colega disse que é melhor usar `i < n + 1`, porque o operador `<` é mais rápido que `<=`. Ele afirma que no nível de assembly, `<` é executado em um ciclo de clock da CPU, enquanto `<=` leva dois ciclos, porque a CPU precisa verificar adicionalmente a igualdade.
Tentei ambas as opções no meu código:
```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;
}
No answers yet.
Faça login para deixar uma resposta
Blogs