La mémoire de MacOS
Quelques explications sur la gestion de la mémoire vive sous MacOS

Top

La mémoire sous MacOS est gérée de manière totalement différente de ce qu'elle était sous les anciennes versions du système d'exploitation (OS 9 et précédents). Les choses ont évolué dans le bon sens et personne ne s'en plaindra.
MacOS dispose également, depuis MAVERICKS, d'un mécanisme de mémoire compressée qui peut s'avérer très intéressant pour les configurations dotées de peu de RAM.

Qu'est-ce qui a changé sous OS X par rapport à OS 9 ?

Une gestion dynamique de la mémoire

Sous Mac OS 9 (et systèmes antérieurs) l'allocation de la mémoire se faisait de manière "manuelle", et c'était donc vous même qui deviez attribuer (sauf pour le Finder *) une quantité de mémoire à toutes vos applications. Ainsi, si vous aviez, par exemple, alloué 25 Mo de mémoire vive à "Appleworks", cette application monopolisait dès son lancement ces 25 Mo de mémoire vive, même si au début de l'utilisation ponctuelle de cette application, 15 Mo auraient été suffisants. Ce système avait deux inconvénients majeurs : Primo il y avait bien sûr du gâchis de RAM, car l'application n'avait pas forcément constamment besoin de tant de RAM pour fonctionner, mais secondo, vous étiez tout de même obligé d'allouer suffisamment de mémoire à vos applications, sinon vous pouviez obtenir un message d'erreur vous indiquant qu'il n'y avait pas assez de mémoire pour telle ou telle opération en cours !!! Bref, il fallait trouver la bonne quantité ! On était certes aidé en partie, par la mention chiffrée "Mémoire maximum conseillée" apparaissant dans la fenêtre d'informations de chaque application, mais on en allouait toujours un peu plus pour être tranquille...

* (On pouvait modifier l'allocation de mémoire vive du Finder grâce à "ResEdit").

 

Sous OS X, la mémoire est gérée de manière totalement dynamique. Plus besoin de se casser la tête pour savoir combien de RAM allouer à telle ou telle application (de toute façon vous ne pouvez plus le faire), car c'est le système lui même qui se charge d'attribuer, au moment "T" la quantité adaptée de mémoire à telle ou telle application en activité. De ce fait, une application ne peut plus être à cours de mémoire, et OS X ne gâche plus cette mémoire en en affectant trop à une application ou à une autre. Si plusieurs applications sont actives au même moment, OS X sait parfaitement gérer cette situation en allouant la juste quantité de mémoire qu'il faut pour chacune d'entre elles !

 

OS X fonctionne avec de la mémoire virtuelle qu'on ne peut désactiver

Sous Mac OS 9 et précédents, on pouvait activer/désactiver la mémoire virtuelle grâce au Tableau de Bord "Mémoire". Si on avait peu de mémoire vive installée sur son ordinateur, on pouvait activer cette mémoire virtuelle, ce qui permettait au système d'en user moins, grâce à l'utilisation, en complément, d'un espace plus ou moins grand du disque dur comme une mémoire virtuelle. L'avantage était de pouvoir ouvrir plus d'applications avec moins de RAM. L'inconvénient, c'était que le système était plus lent. Au contraire, une utilisation avec la mémoire virtuelle désactivée était synonyme de rapidité et de vélocité.

Sous OS X, la mémoire virtuelle est constamment en activité, car le système Unix d'OS X est basé sur la mise en oeuvre et la gestion rationnelles de cette mémoire virtuelle. Toutefois, la mémoire virtuelle sous OS X n'a rien à voir avec la mémoire virtuelle sous OS 9. Le processus sous OS X est bien plus complexe que le seul emploi d'un simple espace du disque dur. C'est ce que je vous propose de découvrir sur cette page.

 

Il n'y a plus de fragmentation de la RAM sous OS X

Sous OS 9 et les systèmes antérieurs, on était confronté au problème du morcellement de la RAM. Je m'explique : Admettons, par exemple, qu'au démarrage de son ordinateur, sous OS 9, on dispose d'un bloc de mémoire disponible maximum de 40 Mo. On lance ensuite trois applications : tout d'abord "A", puis "B", et enfin "C". On avait préalablement alloué 10 Mo à l'application "A", 10 à l'application "B" et 20 à l'application "C". Une fois ces trois applications ouvertes, il n'était bien entendu plus possible d'en ouvrir d'autres. Admettons qu'on veuille ensuite ouvrir une application "D", à laquelle on avait attribué 30 Mo de RAM. Comment faire ? Il est donc indispensable de fermer deux applications afin de "récupérer" 30 Mo de mémoire disponible. Si on ferme les applications "A" et "C", on récupère bien 30 Mo de mémoire, mais on ne pourra pas pour autant lancer l'application "D", car en réalité on aura deux blocs de mémoire distincts (un de 10 et un de 20) et non un bloc de 30 Mo. La mémoire disponible est morcellée !

Et de ce fait, plus on ouvrait et on fermait les applications sous OS 9, plus cette mémoire disponible était fractionnée et il fallait alors redémarrer l'ordinateur pour avoir à nouveau un bloc d'un seul tenant.

Sous OS X la mémoire ne se fragmente plus. OS X gère la mémoire de manière totalement différente et beaucoup plus intelligemment. On ne risque plus d'être confronté à ce type de situation, et c'est très bien ainsi. Vous pouvez donc ouvrir et fermer vos applications comme bon vous semble sans vous soucier d'un éventuel morcellement de la mémoire vive !

 

La mémoire est protégée sous OS X

L'un des principaux avantages d'OS X, comme de tout système UNIX, réside dans l'emploi, par les applications, d'une mémoire protégée. C'est-à-dire que la mémoire vive est distribuée par OS X aux applications de manière à ne pas "planter" toutes les applications en cas de panne de l'une d'elles. Fini les redémarrages intempestifs comme sous OS 9 ! Désormais, lorsqu'une application est défaillante, il suffit de la quitter ou de la "forcer à quitter", et le système lui, n'est en rien affecté ! Là encore, il s'agit d'un réel progrès.

 

Un mécanisme de mémoire compensée

La gestion de la mémoire est totalement centralisée sous OS X. Le système peut ainsi minimiser les risques de saturation de la RAM.
Par ailleurs, et cela est une amélioration dont profiteront tous les détenteurs de Mac dotés de peu de RAM, OS X dispose (depuis MAVERICKS) d'un mécanisme de mémoire compressée. Ce système de compression est en quelque sorte une étape intermédiaire avant le swap (voir plus bas). OS X compresse les données les moins utilisées pour limiter l'espace qu'elles occupent en mémoire RAM, libérant ainsi un peu plus de mémoire RAM pour les applications qui en ont le plus besoin. Lorsque ces données sont à nouveau sollicitées, elles sont alors décompressées.
Bien entendu, si cela ne suffit pas le swap prendra alors le "relais".

 

Apple précise que cette compression complète idéalement le "swap", qui déchargera directement sur le stockage de masse (disque dur) les blocs compressés. Ainsi, le temps nécessaire pour "swapper" les données sera légèrement réduit, et l'usure sera moindre pour les SSD (pour les disques durs aussi... mais ce point n'est pas particulièrement critique sur les disques durs). De même, les données transférées sur le stockage de masse lors de la mise en hibernation sont compressées, ce qui peut sensiblement accélérer la reprise.

 

 

Bien ! Ceci déjà précisé, nous allons maintenant examiner comment OS X gère la mémoire vive, et comment surtout fonctionne la mémoire virtuelle sous le nouvel OS d'Apple.

Comment est gérée la mémoire vive sous OS X ?

Pour mieux comprendre les choses et comme un dessin vaut mieux qu'un long laïus, je vous propose de faire une petite expérience toute simple, celle-ci vous permettra de voir si vous avez suffisamment de RAM sur votre ordinateur.

Après avoir travaillé un certain temps (une heure ou deux) sur votre ordinateur avec des applications habituelles (ouvrez et travaillez par exemple avec votre navigateur préféré, "Mail", "Pages", "Aperçu", "TextEdit" etc...), ainsi qu'après avoir ouvert, fermé et réouvert un certain nombre d'applications, maintenez en quelques unes ouvertes (5 ou 6), puis... Lancez l'application gratuite "Memory Clean" que je vous conseille de télécharger sur Mac App Store (ICI).

 

Vous obtenez cette fenêtre :

 

 

 

---------------------------------------------------

 

 

Vous obtenez des indications intéressantes sur l'utilisation de la mémoire vive sous OS X (Ces chiffres seront différents chez vous bien entendu) :

 

"Memory Clean" détaille comment se répartit la mémoire vive que vous avez installée sur votre ordinateur. J'ai pour ma part 16 Go de mémoire vive sur mon Mac Pro, et celle-ci se répartit, au moment de cette capture d'écran comme suit :

  • 5,93 Go used : Mémoire utilisée = Mémoire de l'application + Mémoire résidente (wired) + Mémoire compressée (Compressed).
  • 10,07 Go available (mémoire vive libre disponible).

 

 

Lancez maintenant l'application "Moniteur d'activité" situé dans le dossier "Utilitaire" et allez à la rubrique "Mémoire". Regardez en bas de la fenêtre les chiffres qui sont indiqués.

 

 

------------

 

L'important ici est d'examiner le chiffre indiqué à la rubrique "Fichier d'échange utilisé".

 

La valeur mentionnée (ici "0") indique la quantité de mémoire vive artificielle (virtuelle) qui a été en quelque sorte "constituée" sur votre disque dur, dans un fichier dénommé "swapfile0" en complément de votre RAM physique.

Autrement dit, si vous ne disposez pas d'assez de RAM, le système OS X est obligé de recourir (si la compression ne suffit plus) à une portion de votre disque dur (les fichier swapfile) pour s'en servir comme un complément de RAM (Dans ce cas il "pagine" à l'extérieur ("out") en plus de "paginer" à l'intérieur ("in").

Si le chiffre est de 0 ou peu élevé, cela signifie que vous disposez de suffisamment de RAM physique. Si le chiffre est élevé, c'est que le système "swappe" beaucoup trop, et qu'il faudrait mieux que vous installiez de la RAM supplémentaire !

 

PS : Cette rubrique indique également le montant de la mémoire comprimée.

 

Le "swap" du système est tout à fait normal et peut se produire même si vous avez une quantité non négligeable de mémoire vive installée sur votre Mac. Si, par exemple, vous lancez beaucoup d'applications "gourmandes " en même temps, et/ou que vous effectuez des opérations telles l'application de filtres sous Photoshop ou des traitements d'image 3D, où bien tout simplement, grâce au "multitâche" d'OS X, si vous utilisez plusieurs logiciels en même temps, il est clair que le système peut "swapper".

Le "swap" est normal sous OS X, mais trop de "swap" n'est pas bon ! Cela ne doit être qu'une roue de secours temporaire et ponctuelle, pas la règle !

 

Si vous n'avez pas assez de RAM, vous allez donc "swapper" trop souvent, et OS X va tourner au ralenti. D'où l'intérêt d'installer le maximum de RAM sur votre Mac... CQFD !

 

Dans "Memory Clean", jetez un oeil sur le chiffre indiqué en grand ("Available memory" - "Mémoire libre disponible"). Si celui si est faible, alors c'est que vous manquez de RAM et qu'il serait bien de rajouter (si vous le pouvez) des barrettes de RAM dans votre Mac, car le système risque de swapper trop souvent, entraînant de fait des ralentissements.

 

Comment OS X swappe ?

Bonne question ! Comment ça marche ce processus de "swap" ?

Nous l'avons vu, OS X commence à "swapper" lorsque les ressources en mémoire vive "fraîches" sont insuffisantes. Pour cela, OS X va puiser dans la réserve de mémoire inactive mais déjà précédemment allouée. Ces "pages" inactives sont alors copiées temporairement sur le disque dur... afin de faire de la place pour les "pages" actives qui elles, sont alors copiées en retour depuis le disque dur... vers la mémoire physique... CQFD !

 

Que faire s'il ne me reste que peu de mémoire disponible ?
Puis-je encore ouvrir beaucoup d'applications ?

Et bien oui ! Je vous le répète, nous ne sommes plus sous OS 9, mais sous OS X ! Le système gère la mémoire de manière dynamique, et de ce fait, même si en apparence vous n'avez que peu de mémoire vive disponible, vous pouvez encore ouvrir des applications.

En réalité, OS X utilise la mémoire de la manière la plus efficiente possible en fonction de la quantité de mémoire vive disponible sur le Mac.

OS X semble toujours s'accomoder de la mémoire dont il dispose. Toutefois, il est évident qu'avec 16 Go ou 32 Go de RAM physique, OS X pourra en allouer dynamiquement davantage à chacune de vos applications ouvertes que s'il n'en disposait que de 8 Go.

 

Un Finder Gourmand ?

Oui, en effet vous allez sans doute vous rendre compte que le Finder peut, dans certaines conditions, devenir très "mémorivore". Si au moment du démarrage du Mac, le Finder ne "consomme" que peu de RAM, ce chiffre peut très vite augmenter. Si par exemple, vous ouvrez des dossiers, situés sur votre disque dur, et qui contiennent des centaines de fichiers, notamment des photos, des cliparts ou des images, et bien vous constaterez que la mémoire allouée au Finder peut enfler jusqu'à 100, voire 150 Mo !En effet, les informations relatives à l'ouverture de ces gros dossiers et de leurs contenus sont alors "mémorisées", et de ce fait le besoin en RAM s'avère plus important.

C'est d'ailleurs pour cette raison, qu'OS X semble réagir plus vite après quelques minutes d'utilisation : Après le démarrage de votre ordinateur sous OS X, lorsque vous ouvrez pour la première fois une fenêtre ou un menu, il y a comme un "petit délai", une sorte de "lenteur", qui, par la suite, lorsque vous ré-ouvrez ce menu ou cette fenêtre ne semble plus exister. Ces opérations on en effet été mémorisées...

Pour éviter un enflement inacceptable et inutile du Finder, mieux vaut éviter d'ouvrir ce type de dossier si l'on y recherche une photo, une image ou un dessin. Utilisez plutôt des applications qui vont vous cataloguer ce type de fichier et vous permettront une recherche plus aisée. Vous pouvez utiliser des applications comme "Photos", "iViewMediaPro" ou "Tri-Catalog"...

Enfin, si vous souhaitez ramener le Finder à une taille plus acceptable, et ainsi recouvrer une bonne partie de RAM disponible, il vous suffit de relancer le Finder en le forçant à quitter (Appuyez simultanément sur les touches "alt"+"pomme"+"esc").

 

Quelques astuces pour optimiser la RAM :

Beaucoup d'utilitaires d'entretien (voir page "Entretien") proposent des fonctions permettant d'optimiser la RAM. C'est le cas par exemple de "Onyx" à la rubrique "Informations", onglet "Mémoire" :

 

 

-------------

 

 

Vous obtenez dans cette fenêtre à peu près (manque notamment le chiffre de la mémoire disponible) les mêmes informations que celles que vous avez obtenues plus haut (si les chiffres sont un peu différents, c'est normal, car la mémoire étant dynamique, ces chiffres varient constamment).

 

En haut, la répartition de la mémoire, et en bas, des informations sur la mémoire virtuelle.

 

Vous avez 2 boutons pour optimiser la mémoire vive, si cela est nécessaire (les boutons "Recharger" permettent simplement de réactualiser les données qui s'affichent dans cette page). Il va de soi que si vous avez beaucoup de RAM sur votre Mac, que ce dernier swappe quasiment jamais et qu'il vous reste beaucoup de mémoire disponible, inutile de recourir à ces 2 boutons, cela est totalement inutile. Par contre, si vous avez peu de RAM sur votre Mac (4 Go c'est le minimum vital pour EL CAPITAN), alors il sera peut-être parfois utile de recourir à "Onyx" pour optimiser votre mémoire vive.

 

Pour cela cliquez simplement sur le bouton "Purger" afin de purger la mémoire inactive. La mémoire inactive sera ainsi transformée en mémoire disponible (free).

 

Il vous est également possible de désactivez l'utilisation des fichiers d'échange de la mémoire virtuelle, mais cette fonction sera, à mon avis, réservée aux initiés. Ne désactivez pas l'utilisation des fichiers d'échange de la mémoire virtuelle si vous n'avez pas au moins 4 Go de RAM sur votre Mac (ce qui est, à mon avis, impossible pour faire tourner EL CAPITAN).

 

L'application "Memory Clean" permet, elle aussi d'optimiser la RAM en transformant la mémoire inactive en mémoire disponible. Il suffit de cliquer sur "Clean" en bas à gauche de la fenêtre de cette application :

 

 

 

---------------------------------------------

 

 

 

Quelques conseils pour terminer

Si tout ceci vous parait bien abstrait et un peu rébarbatif, voici les quelques conseils simples et judicieux que l'on peut en déduire, pour une utilisation optimisée de votre capital de mémoire vive sous OS X :

 

  • Il faut à tout prix ajouter de la RAM à votre ordinateur. Il semble évident que 4 Go est vraiment le strict minimum vital. À mon avis c'est même très insuffisant, car cela ne permet pas d'utiliser OS X EL CAPITAN dans de bonnes conditions. Donc autant prendre les dispositions qui s'imposent, et ce d'autant plus que la mémoire vive est devenue très bon marché de nos jours. Alors je vous conseille de gonfler la RAM pour que votre ordinateur préféré soit muni d'au moins 8 Go, voire plus si vous le pouvez.

    Ce chiffre de 8 Go est vraiment le minimum indispensable, à mon avis, pour la grande majorité des utilisateurs Mac, qui n'ont pour activités principales que le surf sur Internet, les emails, le traitement de texte, l'audio et les traitements basiques des fichiers vidéo et photo, ou l'emploi de filtres Photoshop de manière très ponctuelle, la gravure, le scannage etc...

    Mais si vous le pouvez/souhaitez, gonflez votre Mac à 16 Go de RAM ou plus (en fonction des modèles de machines), n'hésitez pas.... Ce n'est pas de l'investissement perdu.

  • Faut-il laisser ses applications ouvertes sous OS X ? Ou faut-il les refermer ? Là je ferai une réponse de Normand : Oui et non. Tout est dans la mesure et autant être raisonnable. Si vous avez suffisamment de RAM et si vous comptez uniquement aller sur le Net, faire du traitement de texte, écouter de la musique, et que vous comptez graver un CD, il n'y a là aucun problème, vous pouvez laisser toutes vos applications ouvertes, et n'êtes pas obligé de les refermer... Une application ouverte, mais qui n'est pas en activité ne consomme quasiment pas, ou même pas du tout de puissance processeur (CPU)... Donc pourquoi les refermer ? d'autant plus qu'avec 8 ou 16 Go de RAM, OS X saura parfaitement gérer ces 6 ou 7 applications, même si elles "travaillent" en même temps.... Nous ne sommes plus sous OS 9. Par contre, si vous avez peu de RAM (4 Go) ou si vous avez décidé de vous lancer dans de lourds travaux de traitements photographiques, il n'est pas inutile de quitter quelques applications, voire même de relancer le Finder et/ou purger la mémoire inactive, si vraiment vous n'avez pas envie de voir OS X swapper... Mais là encore, cela dépend de votre appréciation personnelle, car si le "swapping" d'OS X ne vous dérange pas outre mesure, vous pouvez très bien laisser toutes vos applications ouvertes... Une fois vos traitements photos réalisés, OS X arrêtera de "swapper"... Par contre, évitez tout de même d'ouvrir 30 ou 40 applications en même temps, à moins que le "swapping" vous plaise à ce point... Maintenant si vous préférez tout de même fermer une application après l'avoir utilisée, quitte à la ré-ouvrir par la suite (il est parfois difficile de perdre ses bonnes habitudes d'OS 9), sachez que cela ne pose aucun problème ! La mémoire, sous OS X, ne sera jamais morcelée, et en plus les applications se lancent plus vite à partir de la seconde fois !
  • Je conseille également d'éteindre/redémarrer votre Mac tous les jours, surtout si vous n'avez que peu de RAM.