L'opération de comparaison < est-elle plus rapide que <= ? Le choix de l'opérateur affecte-t-il les performances en C++ ?
Bonjour à tous ! Je suis un développeur C++ débutant, et une question me taraude depuis plusieurs jours. J'écris des boucles avec des conditions, et je me demande souvent : y a-t-il une différence de performance entre `i < n` et `i <= n` ? Par exemple, au niveau assembleur, ces opérations peuvent s'exécuter différemment. J'ai entendu dire que sur les anciens processeurs, la comparaison "inférieur à" pouvait être plus rapide que "inférieur ou égal", car la seconde nécessite une vérification supplémentaire d'égalité. Mais aujourd'hui, en 2024, est-ce toujours pertinent ?
Voici un exemple de code simple qui me préoccupe :
```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;
}
```
Les deux boucles font la même chose, mais la première utilise `<` et la seconde `<=`. Le compilateur optimise-t-il cela ? Ou dois-je toujours préférer un opérateur à l'autre ? Je suis particulièrement intéressé par le fonctionnement sur les processeurs modernes x86-64 et ARM. Peut-être y a-t-il des cas où la différence est vraiment...