Avatar ·

Operación de comparación < es más rápida que <=? ¿Afecta la elección del operador al rendimiento en C++?

¡Hola a todos! Soy un desarrollador principiante de C++ y me ha estado molestando una pregunta durante varios días. Escribo bucles con condiciones y a menudo me pregunto: ¿hay alguna diferencia de rendimiento entre `i < n` y `i <= n`? Por ejemplo, a nivel de ensamblador, estas operaciones pueden ejecutarse de manera diferente. He oído que en procesadores antiguos, la comparación "menor que" podía ser más rápida que "menor o igual que", porque la segunda requiere una verificación adicional de igualdad. Pero ahora, en 2024, ¿sigue siendo relevante esto? Aquí hay un ejemplo simple de código que me preocupa: ```cpp int sum = 0; for (int i = 0; i < 1000000; ++i) { sum += i; } ``` vs ```cpp int sum = 0; for (int i = 0; i <= 999999; ++i) { sum += i; } ``` Ambos bucles hacen lo mismo, pero el primero usa `<` y el segundo `<=`. ¿Optimiza el compilador esto? ¿O necesito preferir siempre un operador sobre el otro? Me interesa especialmente cómo funciona esto en procesadores modernos x86-64 y ARM. ¿Quizás hay casos donde la diferencia realmente importa?