yostral a écrit:Pour ce qui est de la conso de la ram, c'est vrai que certaines appli en demandent plus (ça alloue 64 bit au lieu de 32 à chaque fois).
Non, ce n'est pas aussi simple mais je vais essayer d'être un peu plus précis sans faire dans le compliqué. (Jess va me prendre pour un savant fou à force de me voir intervenir sur des sujets techniques)
Les instructions CPU sont écrites sur un certains nombres d'octets. En 32bits une opération particulière pour écrire une valeur dans un registre 32bits de la CPU se code sur 5 octets, dont 4 octets utilisés pour la valeur (4*8 bits=32bit). En 64 bits on doit utiliser 8 octets pour coder la valeur (8*8bits = 64bits), ce qui fait que la même opération particulière se code désormais sur 9 octets sur du x86_64 au lieu de 5 octets sur le 32 bits. Donc la taille du programme réservée aux instructions sera plus grosse et puisque cette partie est chargée en mémoire il y aura une plus grosse empreinte mémoire pour un programme en 64bits.
Mais comme le codage d'instruction est complexe et se fait sur une série d'octet parfois complexe et plus ou moins longue, certaines instructions ont une augmentation entre le 64 et 32 bits moindre ou supérieure à notre exemple. Tout ceci rend l'augmentation du poids du programme plus ou moins importante et non prévisible. Et je ne parle ici que de la partie code, pas de la partie données qui peut carrément doubler de poids.
J'avais lu des documentations qui estimaient à 30% de plus la taille du code pour du 64bits.
D'un autre côté il y a plus de mémoire adressable. Le passage à 64bits me semble assez peu intéressant pour les machines qui ont une quantité de mémoire inférieure ou égale à 1Go (avec un écart pifométrique à choisir en fonction sa config), hormis cas particuliers pour des calculs.
edit: rectification en français un peu moins approximatif du soir. Zzzz.