sajid_morad
Messages postés31Date d'inscriptionvendredi 27 février 2004StatutMembreDernière intervention26 mars 2009
-
24 nov. 2004 à 17:23
bebert37
Messages postés38Date d'inscriptionjeudi 17 juillet 2003StatutMembreDernière intervention16 février 2005
-
24 nov. 2004 à 17:55
salut tout le monde, voulant optimisé une boucle qui prend un peu de temps je l ai réécri en asm, en effet j ai pu optimisé le temps en optimisant le code asm tout ça en mode debug, mai en release j ai remarqué que le temps que prend l éxecution de la boucle en code C est plus court que le temps en code asm qui est déja optimisé :shock) , normalement ça doit étre le contraire, je comprent pas pourkoi?
j aimerai bien comprendre pourkoi ce comportement? et comment optimisé mon code , et Merci d avance
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 24 nov. 2004 à 17:43
ben c'est simple, tu remets le tout en C mode relesase et tu compiles en demandant la sortie du listing 'asm avec source'.
Tu edites le asm produit par le compilo et tu recommnces avec TA partie asm, te restera plus qu'a comparer.
Comme je te lai deja dit, si tu ne fais qu'un petit morceau de fonction en asm inline, tu ne feras generalement que gener l'optimisation du compilo et tu obtiendras de ce fait un moins bon code. Les compilos modernes produisent un tres bon code, il faut coder la fonction complet en asm 'declspec(naked)' et une grande habitude de la chose avant d'esperer faire mieux.
bebert37
Messages postés38Date d'inscriptionjeudi 17 juillet 2003StatutMembreDernière intervention16 février 2005 24 nov. 2004 à 17:55
Comme solution je te proposerai :
1 Le fait de passer de debug en release accelere enormement le code car toute la gestion de debug est supprimer.
2 Le compilateur possède un mode optimisation du code ... qui te fais des trucs de oufs en utilisant les propriétés des processeurs comme par exemple le fait sur une boucle qui va de 0 à X, il va faire tourner la boucle de X à 0 car la comparaison entre 2 valeur prend moins de cycle machine si on compare 1 valeur a 0 ou 2 valeurs entre elles.
(enfin moi j'dit ça... j'dit rien )
C'est peut être pas tout à fait exact, mais l'idée est la.
voila
Ce sont les tonneaux vides et les hommes pleins qui font le plus de bruit
:big)