Introduction
Pour cet article, nous allons employer un protocole de test inhabituel : programmes 32 bits dans un environnement 32 bits, puis programmes 32 bits dans un environnement 64 bits pour finir par une configuration logicielle intégralement 64 bits. Le but ? Montrer que les possesseurs d’OS 32 bits peuvent tirer parti de 8 Go de RAM ou plus avant de basculer sur un OS 64 bits à terme. En parallèle, on s’attachera à voir comment les programmes 32 bits peuvent bénéficier d’un ajout de RAM dans un environnement 64 bits, pourquoi les cartes graphiques ne remplissent-elles pas exclusivement leur mémoire dédiée de textures et enfin l’importance d’avoir plus de 4 Go de RAM avec un OS et des logiciels 64 bits. Attention, surprises en vue !
Plateforme de test
Pour éviter d’induire des biais, nous avons utilisé la même configuration dans tous les cas de figure. Les versions 32 et 64 bits de Windows 7 (avec mises à jour et pilotes) ont été successivement installées sur un SSD Super Talent Ultradrive GX2 tandis que les programmes ont trouvé leur place sur un disque dur. Le Phenom II X6 1090T a quant à lui été overclocké dans des proportions raisonnables (4 GHz) afin de tenir 24 heures de charge sachant que l’intégralité des slots mémoire étaient occupés. S’agissant de la mémoire, nous sommes arrivés à 12 Go en combinant 2 barrettes de 4 Go et 2 barrettes de 2 Go.
Composants | Détails |
---|---|
Processeur | AMD Phenom II X6 1090T (Thuban) @ 4.0 GHz |
Ventirad | Prolimatech Megahalems + Noiseblocker Multiframe M12-PS |
RAM | 4 x 4 Go Kingston HyperX 1600 CL9 & 2 x 2 Go Kingston HyperX 1600 CL9 |
Carte mère | MSI 890FXA-GD70 |
Stockage | Super Talent Ultradrive GX2 (OS), Western Digital Caviar Blue 1 To (programmess) |
Alimentation | Aerocool V12XT 800 Watt |
Boitier | Silverstone Raven RV02 |
Ventilation | Rhéobus Zalman pour : 1 Noiseblocker Multiframe S3 120mm et 3 Silverstone 180 mm |
OS | Windows 7 Ultimate x86, Windows 7 Ultimate x64 |
32 bits : goulets d’étranglement
Les versions 32 bits (x86) de Windows XP, Vista et 7 ne peuvent pas gérer plus de 4 Go de RAM (voir notre article). Certes on peut contourner cette limitation avec les modes PAE, modifications de registre et différentes options au démarrage mais le résultat n’est pas satisfaisant. A vrai dire, c’est même prendre le risque de générer une instabilité voir un crash système.
On sait par ailleurs qu’un programme 32 bits ne peut pas adresser plus de 2 Go de RAM, de même que les OS 32 bits ne, gèrent que 3,25 Go voir moins dès lors que la quantité de RAM installée excède les 4 Go. Si Vista et 7 afficheront bien les 4 Go dans les informations système, c’est un effet marketing : la mémoire « manquante » est réservée par l’OS aux programmes qui pourraient être incompatibles avec un OS 64 bits. Par ailleurs, une fraction de la mémoire système est nécessaire à la carte graphique et contrairement à l’idée répandue, cette fraction n’est pas égale à la quantité de GDDR embarquée sur la carte graphique.
Toutes les cartes graphiques PCIe ont un gestionnaire de mémoire, le GMP (Graphics Memory Page table), dont l’équivalent pour les modèles AGP est le GART (Graphics Address Remapping Table). Ceux-ci permettent de mapper certaines pages mémoire du système vers l’espace adressable de la carte graphique, permettant ainsi au GPU d’accéder à des sous-ensembles de cette même mémoire système accessibles au GPU dès que nécessaire. De même, le système doit pouvoir adresser la mémoire embarquée sur la carte graphique.
La fraction de RAM allouée à ce mappage dépend non seulement de la quantité totale de GDDR sur la carte graphique (elle s’en rapproche mais ne l’égale pas), mais aussi de ce que le système peut dégager de son propre tampon mémoire pour devenir un tampon mémoire externe dédié aux graphismes.
On lit bien souvent sur les forums que la totalité de la GDDR est reflétée dans la mémoire système, ce qui est ni plus ni moins qu’une légende urbaine.
Le fichier d’échange : quand la RAM ne suffit plus
Rappelons que le fichier d’échange (swap file) permet à un système d’exploitation de pallier à un manque de RAM en utilisant tout ou partie un périphérique de stockage comme espace adressable de manière à éviter les erreurs et dépassement des capacités de traitement. L’OS gère par ailleurs la mémoire par priorités, puisque les données nécessaires aux processus en cours sont stockées dans la RAM.
Dans les situations où les ressources mémoires deviennent critiques, l’OS ajuste la taille de sa mémoire système adressable grâce au fichier d’échange pour aller au-delà de la quantité de RAM installée et ainsi traiter les requêtes qui excèderaient la RAM seule. La mémoire virtuelle désigne quant à elle le couple RAM + fichier d’échange.
Windows a le mérite de stocker les données relatives aux programmes minimisés ou en veille dans le fichier d’échange, ce qui libère un maximum d’espace RAM pour les programmes actifs mais pose un problème évident : le débit d’un disque dur est sans commune mesure avec celui des barrettes mémoire. Les SSD ont partiellement comblé l’écart, mais le problème général demeure d’autant plus que les accès répétés au fichier d’échange sont une hantise pour les SSD qui peuvent voir leurs performances baisser dans ce cas.
Le fichier d’échange nous intéresse énormément puisque grâce à lui, la mémoire virtuelle peut gérer 8 Go de RAM voir plus, et ce même avec les versions 32 bits de Windows. Toutefois, on perd donc en performances vu les débits des disques durs.
Le meilleur des deux mondes
Comment dépasser la barrière des 4 Go sans faire de sacrifices du côté des performances ? C’est tout à fait possible en créant un RAM-disque que l’OS reconnaitra comme périphérique de stockage, lequel sera consacré exclusivement au fichier d’échange. Bien que ce périphérique de stockage particulier s’appuie des barrettes de mémoire, il sera moins véloce que de la RAM directement accessible dans un environnement 64 bits puisque les données devront être copiées du fichier d’échange vers la mémoire avant de pouvoir être utilisées. Par ailleurs, il faut aussi avoir des logiciels qui permettent de gérer le RAM-disque, que nous allons détailler maintenant.
Exploiter 16 Go de RAM avec un OS 32 bits
1ère étape : les logiciels
Parmi les logiciels permettant la création/gestion d’un RAM-disque, deux nous ont particulièrement plu : RAM Disk Plus 10.1 et Gavotte RAM Disk 1.04.xxx. Le premier est très simple d’emploi, fiable, mais payant (~46 €) tandis que le second donne lui aussi de très bon résultats en plus d’être gratuit (moyennant publicité).
2ème étape : utilisation de la mémoire « non gérée » pour créer le RAM-disque
A l’aide d’un des deux utilitaires précités, on peut enfin utiliser la mémoire jusque là non reconnue ni adressable par un OS 32 bits. Attention à ne pas oublier d’activer la fonction remappage mémoire dans le BIOS, sans quoi il ne se passera rien.
A ce stade, il ne reste plus qu’à formater le disque. Il est même techniquement possible d’utiliser la différence entre les 4 Go de RAM installés et les 3,5 Go utilisés par Windows sous réserve de compatibilité matérielle (les composants récents ne devraient pas poser de problèmes). En cas d’instabilité, mieux vaut laisser au minimum 100 Mo de RAM inutilisé. Après un redémarrage, on peut passer à la suite.
3ème étape : paramétrage du fichier d’échange
On consacre donc tout ou partie de la RAM libre au fichier d’échange, sans descendre en-dessous de 4 Go toutefois. Pour la configuration de test, nous avons assigné 8 des 12 Go de RAM au RAM-disque avant de redémarrer à nouveau. A l’issue de cette étape, le disque dur se trouve logiquement affranchi de la gestion du fichier d’échange. Attention cependant au mode veille qui peut poser problème dans ce cadre, mieux vaut donc éviter de l’activer.
4ème étape : transfert des fichiers temporaires vers le RAM-disque
Avec 12 Go de RAM, une autre possibilité consisterait à assigner 4 Go pour le fichier d’échange puis 4 Go pour les fichiers temporaires : le gain de performance par rapport à un disque dur est évident tandis qu’une simple extinction de la configuration permet d’éliminer les fichiers qui n’ont pas besoin d’être conservés. La simple réallocation des répertoires cache d’un navigateur Internet vers le RAM-disque apporte un confort supplémentaire.
On se retrouve donc avec un fichier d’échange limité à 4 Go dans ce dernier cas, mais cette quantité est suffisante pour la grande majorité d’entre nous : il faut vraiment faire de l’édition vidéo très avancée ou bien manipuler des archives géantes pour réellement nécessiter plus. Les plus patients joueront sur les paramètres pour placer le curseur avec encore plus de précision.
32 bits : benchmarks
Jeux
Nous avons réuni six jeux pour obtenir des moyennes entre le temps nécessaire au démarrage ainsi qu’aux lancements de niveaux, lesquelles ont ensuite été normalisées en prenant la configuration 4 Go de RAM + fichier d’échange sur le disque dur comme référence.
Les résultats permettent de voir si tel ou tel jeu réagit par rapport au déplacement du fichier d’échange et/ou des fichiers temporaires vers la RAM, et si oui dans quelles proportions. Comme on peut le voir, le passage de 12 à 16 Go n’apporte presque rien sauf sous Half Life 2 Cinematic Mod : les autres résultats sont dans la marge d’erreur.
On ne peut malheureusement pas mesurer l’impression de fluidité quand on joue, plus particulièrement lorsqu’un jeu charge de nouvelles zones d’une carte alors qu’on est en cours de partie (GTA IV, Mafia II), ou encore lorsque l’on se déplace en vue panoramique (Anno 1404, Sims 3). La moyenne d’ips est quasiment inchangée, mais la sensation d’une plus grande fluidité, de l’absence de micro – coupures est belle et bien là.
Programmes
Du côté des programmes, le déplacement du fichier d’échange comme celui des fichiers temporaires vers la RAM engendrent une hausse des performances subjective mais aussi mesurable.
Comme c’était déjà le cas avec les jeux, l’emplacement du fichier d’échange et des fichiers temporaires n’est absolument pas anecdotique.
Conclusion
Les versions 32 bits de Windows XP, Vista et Seven peuvent tout à fait tirer parti de 8 Go de RAM et plus. Chaque logiciel réagit différemment, mais on voit que le fait de créer un RAM-disque et de déporter les fichiers temporaires vers la RAM n’a jamais eu d’effet négatif. Vu que les cours de la mémoire sont à la baisse actuellement, nous recommandons de viser 8 ou 12 Go de RAM sachant qu’il faut vraiment avoir une utilisation extrême pour pouvoir exploiter 16 Go. Tous ceux qui ne souhaitent pas passer à un OS 64 bits y trouveront donc leur compte.
64 bits : des cartes graphiques gourmandes ?
Passons maintenant à un environnement 64 bits pour tester programmes 32 et 64 bits sur un pied d’égalité. On commence par regarder ce qu’une carte graphique fait de sa mémoire dédiée ainsi que de la mémoire système allouable : si 1 Go de GDDR peut sembler conséquent au premier abord, c’est en fait bien souvent insuffisant. Le GMP, le GART ainsi que la propension des cartes graphiques à piocher sur la mémoire système ayant été évoqués plus tôt, il est temps d’en avoir le cœur net avec 4 Go de RAM sur Windows Seven 64 bits.
D’emblée, on voit que la carte graphique s’est approprié 1407 Mo de RAM, notamment pour relocaliser les textures non utilisées. Avec seulement 4 Go de RAM installés, on devine sans peine les problèmes arriver si le jeu utilise déjà 2 Go ou plus à lui seul : clipping artificiel, textures basse résolution voir bugs.
En rajoutant 4 Go de RAM, les bugs disparaissent à un certain prix : la carte graphique s’accorde maintenant la bagatelle de 3059 Mo de RAM.
Notons que cette valeur ne dépasse pas les 4000 Mo quand bien même la quantité de RAM installée dépasse les 8 Go.
Il peut être très difficile de mesurer et quantifier précisément l’apport de la RAM parce que son rôle consiste surtout à accélérer le chargement des niveaux, apporter des détails plus élevés ainsi que des textures de qualité supérieure. Concrètement, les jeux permettent alors souvent de revoir à la hausse les réglages graphiques sans se retrouver avec des bugs ou ralentissements lorsque l’affichage à l’écran est réellement dense.
Sommaire et conclusion
Avec un OS 64 bits et une carte graphique milieu de gamme supérieur et plus, l’idéal est d’avoir 8 Go de RAM quand on compte jouer à des titres gourmands quand bien même les exécutables sont en 32 bits. Si le fait d’aller au-delà de 8 Go peut apporter une différence subjective, on ne peut pas pour autant conseiller d’aller jusqu’à 16 Go à moins de faire tourner un programme extrêmement lourd en tâche de fond tout en jouant. Nous reviendrons sur ce point un peu plus tard : les benchmarks 64 bits tendent à montrer que ce problème est souvent surévalué.
64 bits : le fichier d’échange, mal nécessaire ?
Avant de pouvoir enfin répondre à cette question de première importance, nous avons passé un bon moment à jongler entre plusieurs programmes en jouant sur le parallélisme, mais aussi sur la quantité de RAM avec 8, 12 et 16 Go.
En calculant les ressources mémoires nécessaires aux programmes, on pourrait penser qu’il est possible de désactiver le fichier d’échange lorsque l’on a 8 Go. C’est en fait une mauvaise idée : certains programmes ne se contentent pas de la mémoire système et font donc appel à la mémoire virtuelle. Dans ce cas, l’absence de fichier d’échange peut provoquer des erreurs système ou encore saturer la RAM de données corrompues.
Il faut donc tester avec attention la capacité d’un programme à fonctionner sans fichier d’échange, parce que dans les bons cas de figure, on gagne à contourner les temps d’accès assez longs des disques durs. Dans le cas contraire, il faudra faire avec à moins de viser un plus haut niveau RAM, ce qui permet aussi de gagner en performances bien que les écarts ne soient pas conséquent.
De manière à ce que la comparaison soit juste, 6 tâches de rendu ont été lancées en parallèle avec une limitation mémoire de 2 Go chacune.
Mieux vaut être très au fait des ressources mémoires nécessaires à tel ou tel programme avant de désactiver le fichier d’échange lorsque l’on a 8 Go de RAM : comme on pouvait s’y attendre Windows a fini par se retrouver à court de mémoire ici, ce qui s’est traduit par un crash. Au niveau des performances, le gain du à la désactivation du fichier d’échange est là, mais il est minime. Le disque dur est en revanche le premier bénéficiaire de l’opération puisqu’à quantité de RAM égale (12 Go), son activité décroit d’environ 50 % après désactivation du fichier d’échange. A moins que ce dernier soit nécessaire à un programme particulier, il faut donc 12 Go ou plus pour le désactiver sans souci dans un environnement ordinaire.
Conclusion
Mieux vaut donc s’abstenir de supprimer le fichier d’échange lorsque l’on possède moins de 12 Go de RAM, a fortiori sans avoir testé tous les programmes installées au préalable : le gain de performance obtenu ne vaut pas le risque de perdre des données.
64 bits : benchmarks
Le fait est que les vieux exécutables 32 bits, principalement mono-threads, ne bénéficient pas d’un ajout massif de RAM pourvu qu’on ne lance pas plusieurs applications en parallèle. D’autre part, on a vu précédemment que le fait d’installer plus de 4 Go de RAM sur un OS 64 bits ne permet pas d’améliorer les performances des jeux en version 32 bits, tout du moins en matière d’ips.
Deux facteurs sont nécessaires pour observer un gain de performances :
- la diminution/l’accélération du débit de données entre la RAM et le fichier d’échange
- une très grande vitesse de lecture/écriture des fichiers temporaires
Ceci nous ramène à ce que l’on a vu avec un OS 32 bits : si un RAM-disque peut largement accélérer les temps de chargement, le nombre d’ips ne va pas vraiment progresser. En parallèle, si une carte graphique n’hésite pas à se tailler la part du lion lorsque l’on augmente la quantité de RAM, le gain de performance n’est malheureusement pas quantifiable et reste donc subjectif. Nous reprenons donc les 6 jeux précédemment testés ainsi que la configuration munie de 4 Go comme base 100 pour rendre la comparaison plus claire :
Rien d’extraordinaire jusqu’ici : mis à part Half Life 2 avec le Cinematic Mod, l’ajout de RAM n’influe que très peu sur le nombre d’ips. En revanche, les ressources mémoire supplémentaires pour la carte graphique permettent de diminuer le nombre d’aberrations graphiques sous GTA IV.
On pourrait raccourcir les temps de chargements en relocalisant les fichiers temporaires vers un RAM-disque mais cette solution nécessite un minimum de 12 Go de RAM pour en valoir la peine, tandis qu’un SSD aurait le mérite d’offrir des performances homogènes pour l’OS et les fichiers temporaires.
Programmes
En principe, les programmes ne devraient afficher des performances supérieures qu’à condition de pouvoir et surtout avoir besoin d’une quantité de mémoire supérieure, en l’occurrence proche de la quantité installée. Ce n’est qu’à cette condition que l’on peut éviter les contraintes propres au fichier d’échange, bien qu’un SSD permette déjà de les atténuer. Comme on le voit ci-dessous, le gain de performance est quasi-nul sous Cinebench tandis que Photoshop CS4 affiche une progression certes modeste mais bien réelle.
Etant donné que les tests synthétiques ne montrent pas d’évolution significative des performances, nous avons choisi de ne pas faire figurer une pleine page de graphiques quasi-linéaires. Le fait est qu’à partir d’un certain seuil, il est plus intéressant de créer un RAM-disque de taille décente plutôt que d’allouer l’intégralité de la RAM à la mémoire système. Sur ce point, on peut se référer aux résultats obtenus avec Windows 7 32 bits puisqu’ils sont transposables à ceux obtenus ici.
Toutefois, 8 Go nous semble constituer une bonne option dans une optique multitâche confortable quand bien même la mémoire qui peut être utilisée par une carte graphique ne serait pas prise en compte. Du côté des configurations triple canal, on peut considérer que 6 Go constituent un minimum désormais.
Conclusion
Il est rarement aussi difficile d’évaluer précisément la situation : les problèmes liés à la mémoire sont très nombreux et dépendent énormément de l’utilisateur et des programmes sur lesquels chacun s’appuie. Chose intéressante, certains programmes 32 bits dans un environnement 32 bits tireront mieux parti du passage de 4 à 8 Go de RAM (ou plus) que des programmes 64 bits sous un OS 64 bits. De plus, cette approche permet d’utiliser activement l’écart entre les 4 Go de RAM installés et les 3,25 Go utilisables avec une version 32 bits de Windows.
Encore une fois, l’amélioration des performances ne se mesure pas toujours au nombre d’images par seconde, c’est pourquoi notre conclusion s’éloigne un peu de ce que l’on pourrait anticiper à la seule lecture des graphiques. Tout comme lorsque nous avons mis en avant les avantages liés à la gestion des fichiers temporaires par le RAM-disque, les impressions complètent les mesures.
Outre les mesures et impressions, la baisse du prix de la mémoire nous pousse à recommander un minimum de 8 Go de RAM. Le passage à 12 ou 16 Go n’a de sens qu’à condition d’allouer 4 Go (ou plus) à un RAM-disque dans le but d’accélérer le traitement des fichiers temporaires. Ceci vaut pour la compression de fichiers comme pour l’encodage vidéo ou encore le traitement d’images approfondi.
On pourrait aussi vouloir plus de RAM pour que la carte graphique puisse se servir sans contrainte, ce qui peut s’avérer payant comme on l’a vu avec GTA IV par exemple. A moins d’utiliser des programmes particulièrement gourmands en mémoire, les performances ne bondiront pas pour autant, mais la mémoire ne sera plus un souci dans l’immédiat, ni à moyen terme.