Dois-je installer la version 32 bits ou la version 64 bits d’un programme ?


Oui, vous devez installer la version 64 bits. Plus il y a de personnes qui exécutent des applications 64 bits, plus nous nous rapprochons de la transition complète de l'espace de bureau. Apparemment, le code 32 bits sur les processeurs x86 subit en fait une minuscule baisse de performance, car il'est émulé par opposition à l'exécution, bien que je'n'ai pas lu cela depuis des années, et il faut admettre que c'était avant ma formation formelle. Prenez cela avec un grain de sel, cela semble trop simplifié et je n'ai't creusé la question.


Les versions 64 bits des logiciels x86 permettent d'adresser plus de mémoire, de faire des calculs entiers plus importants en moins de temps, de mieux allouer les registres par le compilateur car il y a maintenant 8 registres généraux supplémentaires, et d'avoir une plus grande quantité d'instructions qui peuvent être choisies par le compilateur pour implémenter le programme (bien que vous puissiez argumenter que le seul point où ces instructions sont utilisées sont dans les bibliothèques codées à la main, ou par des intrinsèques de compilateur inclus par l'homme).


Votre commentaire sur le comportement du cache et l'augmentation de la taille des pointeurs augmentant la pression du cache n'est probablement pas un problème énorme. Bien que vrai que les pointeurs prennent deux fois plus d'espace en mémoire, ce n'est pas comme si un programme normal allait avoir une grande quantité de pointeurs dans son ensemble de travail, c'est-à-dire que la quantité de pointeurs qui sont utilisés sur une petite période de temps est probablement assez petite pour que ce soit un point discutable. Les choses ne restent dans un cache que lorsqu'elles sont fortement utilisées, et les pointeurs ont tendance à pointer vers des données plus grandes qu'eux (ils pointent certainement vers des lignes de cache plus grandes qu'eux !), et si un pointeur est utilisé (lire : déréférencé, ou passé à une procédure pour être déréférencé), alors les données plus grandes que lui sont probablement déjà dans le cache.


Tout cela dépend bien sûr des modèles d'accès. Je n'ai pas de données pour étayer ma déclaration précédente, mais si vous'êtes vraiment curieux, j'étudierai cela sur certaines charges de travail pour lesquelles je peux effectivement publier des données, si vous me ping et demandez gentiment :).

Personnellement, je'serais plus préoccupé par l'augmentation de la taille des mots de 4 octets à 8 octets pour la plupart des opérations sur les entiers que pour les pointeurs. Cependant, nous avons des schémas de compression de cache pour gérer cela, au moins dans les mémoires cache de plus haut niveau, et cela ne s'avère en fait pas trop pénalisant.

.