youdontcare a écrit a écrit :
il est plus intéressant / moins prise de tête de laisser faire le compilateur. si ton prog tourne lentement, regarde ce que tu peux optimiser dans l'algo, si tu as vraiment besoin de rapidité -> qq lignes d'assembleur feront l'affaire.
|
tout a fait, le mot-clé "register" fait parti plus des contre-optimisations qu'autre chose.
si tu forces une variable dans un registre, et que c'est pas forcément interressant, le compilo ne pourra pas "allouer" dynamiquement ce registre aux autres variables...
c'est d'abord algorithmiquement que tu dois bosser, et ensuite l'architecture de l'implémentation de ton algo. les compilos actuels font d'excellentes optimisations globales, et tu peux ensuite passer par un compilateur dédié à ton cpu cible.
dans ta boucle, si le compilo a toutes ses options d'optimisations activées, il utilise déjà les registres de manière intelligente...
de manière générale: ce que l'on peut croire être une optimisation, peut s'avérer une grave contre-optimisation...
surtout si l'optimisation en question date de x générations de cpus... (des optimisations pour pentium peuvent être des contres-optimisations pour un p3, et symétriquement des optimisations pour p3 peuvent être des contre-optimisations pour un p4/athlon).
si tu ne connais pas le cpu sur lequel tu travailles, écrit ton code c/c++ "proprement" et laisse le compilo faire ses propres choix, il les fera mieux que toi (et même quand on connais bien un cpu, on laisse le compilo faire son taf, et on s'écrit des primitives en ASM tirant parti du sseuh/meuh meuh x/3dgnou)
[jfdsdjhfuetppo]--Message édité par bjone le 05-05-2002 à 01:21:17--[/jfdsdjhfuetppo]