POWER MATH: TESTE DE VITESSE ENTIERS VS REELS , CLASS VS STRUCT

BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 6 mars 2010 à 18:58
dedalusman Messages postés 4 Date d'inscription vendredi 5 mars 2010 Statut Membre Dernière intervention 1 juin 2016 - 7 mars 2010 à 11:57
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51391-power-math-teste-de-vitesse-entiers-vs-reels-class-vs-struct

dedalusman Messages postés 4 Date d'inscription vendredi 5 mars 2010 Statut Membre Dernière intervention 1 juin 2016
7 mars 2010 à 11:57
Merci pour ce commentaire car je n'avait pas pensé à ce type d'optimisation des compilateurs modernes.

J'utilise Dev C++. Il est possible de voir que le temps d'exécution est en rapport avec le nombre de boucle et le type d'opération. Donc la boucle est codée. (Voir la capture écran)

La partie entière du temps indiqué est en seconde.

for(nb=0;nb<1000000000;nb++)
{
e1=e2/e3;
}

se fait en 46,953 secondes

J'obtiens (voir la capture écran) la même valeur de temps que pour:

for(nb=0;nb<1000000000;nb++)
{
f1=f2/f3;
}

Peut-être qu'un OS multitâche comme Win XP ne permet pas des mesures précises au millième de seconde étant donnée qu'il y a un basculement perpétuel entre les tâches ?
BruNews Messages postés 21041 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 20
6 mars 2010 à 18:58
for(nb=0;nb<1000000000;nb++)
{
e1=e2/e3;
}

Tu es certain que le compilo a généré le code de la boucle ???
Un compilo normal moderne vire la boucle en voyant qu'une seule opération donne le résultat. Il faut sortir le listing ASM pour etre certain.