Release vs debug en asm !!!! [Résolu]

Signaler
Messages postés
31
Date d'inscription
vendredi 27 février 2004
Statut
Membre
Dernière intervention
26 mars 2009
-
Messages postés
38
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
16 février 2005
-
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

2 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
25
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.

ciao...
BruNews, MVP VC++
Messages postés
38
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
16 février 2005

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)