Lynyrd81
Messages postés59Date d'inscriptionvendredi 3 octobre 2008StatutMembreDernière intervention24 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?