[C] a propos du type register

a propos du type register [C] - C++ - Programmation

Marsh Posté le 04-05-2002 à 19:49:04    

a quel moment il st plus interressant d'utiliser un  
- register int
d'un
- int
 
commnent se comporte ce type ??? comme les autres???

Reply

Marsh Posté le 04-05-2002 à 19:49:04   

Reply

Marsh Posté le 04-05-2002 à 20:07:41    

si tu utilise une variable register tu auras pas son adresse mémoire, donc tu pourrat pas utiliser de pointeur ou de "scanf" avec.
 
une variable register est à utilisé kan tu t'en sert bcp pour améliorer le temps d'acces ;)

Reply

Marsh Posté le 04-05-2002 à 20:19:04    

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.

Reply

Marsh Posté le 04-05-2002 à 20:19:39    

Deadog a écrit a écrit :

si tu utilise une variable register tu auras pas son adresse mémoire, donc tu pourrat pas utiliser de pointeur ou de "scanf" avec.
 
une variable register est à utilisé kan tu t'en sert bcp pour améliorer le temps d'acces ;)  




 
jai pas de pointeur dessus ok :)
mais ca accelere reelement??? ou le gain est negligable
 
tho si ya pas de pointeur dessus je peux pas la mettre en fiare un tableau :/

Reply

Marsh Posté le 04-05-2002 à 20:49:26    

koulip31 a écrit a écrit :

 
 
jai pas de pointeur dessus ok :)
mais ca accelere reelement??? ou le gain est negligable
 
tho si ya pas de pointeur dessus je peux pas la mettre en fiare un tableau :/  




 
 
a mon avis, négligeable, d'autant plus que ce n'est qu'une indication donné au compilateur, il peut tres bien ne pas l'exploiter pour diverse raison...

Reply

Marsh Posté le 04-05-2002 à 20:57:21    

pour moi c utile kan sur 10000 lignes de code tu utilise ta variable sur 97% des lignes :D enfin, en gros :lol: ;) :D
 
 
je sais pas, si ta une boucle ki se répète un bon paquet de fois, pê ke la c meiux d'utiliser des register ;)

Reply

Marsh Posté le 04-05-2002 à 22:10:58    

je doit remplir 2 tableau d'int
de 1 a 100 000 fois chaqun
c'rst pour cela que je me demandais si n utilisant des register  
ca irrais plus vite


---------------
télétunestel ouimélétuness sitélétunes mélétunetron [:koulip31] [:suri]
Reply

Marsh Posté le 04-05-2002 à 22:18:17    

Try http://www.presence-pc.com/sqlforum/images/perso/patrim.gif

Reply

Marsh Posté le 05-05-2002 à 01:07:08    

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]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed