Je chronomètre une de mes fonctions et je me suis rendu compte d'un truc étrange: alors que je fais systématiquement les mêmes calculs d'une fois à l'autre, je n'ai pas le même temps!
Je chronomètre ainsi:
ftime(&TempsDepart); converti = (((TempsDepart.time-1069000000)*1000)+ TempsDepart.millitm);
rep = quartic(alpha,beta); // ma fonction
ftime(&TempsArrive); converti2= (((TempsArrive.time-1069000000)*1000)+ TempsArrive.millitm);
|
A savoir que ce chrono je l'ai pris tel quel dans une source de ce site...
Si je lance plusieurs fois, j'aurai par exemple en console mes résultats ainsi:
Le temps d'execution est de 30 millisecondes Le nbre de modulo GMP est de 2168 Le nbre de modulo <&> est de 674 Le nbre de multip GMP est de 5723 Le nbre de multip <*> est de 2499 Le residu biquadratique est 1
|
et une autre fois:
Le temps d'execution est de 20 millisecondes Le nbre de modulo GMP est de 2168 Le nbre de modulo <&> est de 674 Le nbre de multip GMP est de 5723 Le nbre de multip <*> est de 2499 Le residu biquadratique est 1
|
Tous les chiffres sont identiques à l'exception du temps de calcul! La différence est de 50% tout de même!!!
Quelqu'un peut m'expliquer?
Thanx, Malik7934