Est-ce que les variables de registre apportent beaucoup d’amélioration de la vitesse dans un programme ?

Est-ce que les variables de registre apportent beaucoup d’amélioration de la vitesse dans un programme ?

4 juillet 2019 · 1 min. de lecture
quora Quora

Article initialement publié sur Quora

Oui, mais ne vous en occupez pas, le compilateur fait ça beaucoup mieux que vous.

Selon Architecture des processeurs - Reactive, Java, Android, POO :

En architecture 64 bits, le nombre de registres est suffisamment important pour que pratiquement tous les paramètres et toutes les variables locales utilisent un registre dédié. Le protocole d’appel entre les méthodes s’appuie également fortement sur les registres. L’appelant alimente des registres avant l’appel. La pile est utilisée pour sauver l’état des registres avant l’appel et pour les paramètres complémentaires n’ayant pas trouvés de place dans un registre.

Ensuite il donnent un tableau des temps d’accès en fonction de la Hiérarchie de mémoire :

  • registres : 1 cycle processeur (~1 nanoseconde)
  • cache L1 : 1 microseconde (1000x plus lent…)
  • cache L2 : 4 microsecondes
  • cache L3 : 10 à 20 microsecondes
  • RAM : > 200 microsecondes (~200'000x plus lent que le registre…)
Dr. Goulu
Auteurs
Dr. Goulu (il/lui)
Ingénieur à la retraite, toujours curieux et voyageur
EPFL MS Informatique 1988, PhD automatique 1994, eMBA Management of Technology

comments powered by Disqus