cs_yakalelo
Messages postés1Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention23 juillet 2004
-
23 juil. 2004 à 11:31
JackosKing
Messages postés168Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention21 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.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 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.
cs_AlexMAN
Messages postés1536Date d'inscriptionsamedi 21 décembre 2002StatutMembreDernière intervention24 mai 20091 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.
Hades53
Messages postés231Date d'inscriptionmercredi 12 février 2003StatutMembreDerniè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().
JackosKing
Messages postés168Date d'inscriptionmardi 31 décembre 2002StatutMembreDernière intervention21 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