Optimisation de code

cs_yakalelo Messages postés 1 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 23 juillet 2004 - 23 juil. 2004 à 11:31
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005 - 23 juil. 2004 à 14:13
Salut
J' aimerais optimiser un programme en langage C pour le faire tourner plus vite. Il est constitue principalement de conditions if-else. est ce que quelqu un pourrait me sauver ? merci de votre aide.

9 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 juil. 2004 à 11:37
S'il est vraiment lent, je ne pense pas que ça vienne des 'if else'

ciao...
BruNews, Admin CS, MVP Visual C++
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
23 juil. 2004 à 12:34
Dans le cas d'utilisation de boucle, les While() sont déconseillés. Mieux vaut utiliser des bouces For() qui sont nettemet plus rapides.

Le mieux est que tu mettes ton codes ici pour obtenir des critiques afin de l'améliorer.

Shell
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 juil. 2004 à 12:42
pourquoi donc boucle for serait plus rapide que while ???

ciao...
BruNews, Admin CS, MVP Visual C++
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
23 juil. 2004 à 12:49
Parceque la boucle while teste a chaque itération le contenu passé en paramètres... C'est ce qu'on nous a appris en cours en tous cas ...

Personnellement j'ai jamais fait de teste par rapport a ca.

Shell
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Stepharcher Messages postés 117 Date d'inscription samedi 12 avril 2003 Statut Membre Dernière intervention 8 septembre 2008
23 juil. 2004 à 12:56
La boucle for teste aussi les conditions de ses variables en paramètre...

>:) Stéph >:)
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
23 juil. 2004 à 13:00
DeAtHCrAsH > dis toujours oui au prof mais ne rien croire, verifie le listing asm du compilo et tu verras que c'est idem, il y a forcement verif des bornes a chaque tour.

ciao...
BruNews, Admin CS, MVP Visual C++
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
23 juil. 2004 à 13:01
J'ai fait un ptit desassembly pour verifier tes propos DeathCrash, et les 2styles de boucle ne different casiment pas, j'ai juste remarké que la boucle for verifiait la condition avant de commencer a incrementer le compteur de boucle (sil y en a un) contrairement a la boucle while qui elle incremente et puis compare. Donc je ne vois pas avec une simple boucle des 2types, lakel pourrait etre plus "rapide" ke l'autre.

++
0
Hades53 Messages postés 231 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 7 juillet 2009
23 juil. 2004 à 14:00
Hum ça dépends comment tu as codé ton prog, par exemple un code comme celui-là:
if (!strcmp(str,"Bruno")) printf("Salut nono\n");
if (!strcmp(str,"Didier")) printf("Salut dede\n");
if (!strcmp(str,"Eric")) printf("Bonjour Eric\n");
else printf("Bonjour, qui es-tu ?\n");

peut-être optimisé comme cela:
if (!strcmp(str,"Bruno")) printf("Salut nono\n");
else if (!strcmp(str,"Didier")) printf("Salut dede\n");
else if (!strcmp(str,"Eric")) printf("Bonjour Eric\n");
else printf("Bonjour, qui es-tu ?\n");

Ou alors si tu as des nombres, utilises du switch().
0
JackosKing Messages postés 168 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 21 avril 2005
23 juil. 2004 à 14:13
bon pour les while et le for, j'ai un contre exemple..
sur ti68k, un while est optimise en dbf dx,label alors que le for fait un subq, cmp + bcc qui est plus lent...

pour l'optimisation, si tu as que ca c'est pas sensé etre lent, sinon il faut faire un tableau trié et une recherche dichotomique
JackosKing For EvEr
0
Rejoignez-nous