Tri de plus en plus rapide en C

Fermé
Lynyrd81 Messages postés 59 Date d'inscription vendredi 3 octobre 2008 Statut Membre Dernière intervention 24 avril 2011 - 5 mai 2010 à 11:44
Bonjour à tous!

J'ai un projet à faire, où il faut implementer un tri en C et le traduire en assembleur puis l'optimiser. Il faut ensuite comparer les temps d'execution.

Mon souci: quand j'effectue une fois le tri, l'assembleur va effectivement plus vite que le C, mais si j'effectue plusieurs fois le même tri dans une boucle, le C est plus lent sur le premier, mais deviens finalement plus rapide dans les tris suivants!
Exemple de trace d'execution:

 Tri n°1 : 
tri en C : 0.280000 sec
tri en assembleur optimise : 0.210000 sec

 Tri n°2 : 
tri en C : 0.110000 sec
tri en assembleur optimise : 0.160000 sec

 Tri n°3 : 
tri en C : 0.100000 sec
tri en assembleur optimise : 0.120000 sec

 Tri n°4 : 
tri en C : 0.110000 sec
tri en assembleur optimise : 0.120000 sec

 Tri n°5 : 
tri en C : 0.110000 sec
tri en assembleur optimise : 0.160000 sec

 Tri n°6 : 
tri en C : 0.110000 sec
tri en assembleur optimise : 0.110000 sec

 Tri n°7 : 
tri en C : 0.110000 sec
tri en assembleur optimise : 0.160000 sec

 Tri n°8 : 
tri en C : 0.100000 sec
tri en assembleur optimise : 0.150000 sec

 Tri n°9 : 
tri en C : 0.110000 sec
tri en assembleur optimise : 0.150000 sec

 Tri n°10 : 
tri en C : 0.110000 sec
tri en assembleur optimise : 0.150000 sec

Temps moyen du tri en C : 0.125000 sec 
Temps moyen du tri en assembleur optimisé : 0.149000 sec 


Au final le temps du tri en C a beaucoup diminué.

Ma question est la suivante: est-ce que quelqu'un a une idée dee ce qui peut creer ce phénomène?

Merci d'avance!

A voir également: