Livre d'or
Cliquez sur le logo
et laissez vos messages sur le livre d'or
"OS X FACILE"

 
 
 

LA MÉMOIRE D'OS X

Comment est gérée la mémoire vive sous Mac OS X ? Autant vous le dire de suite, et je vais peut-être me répèter, mais la gestion de la mémoire sous OS X n'a plus rien à voir avec la manière avec laquelle elle est gérée sous OS 9 ! Il va falloir vous déshabituer de certains réflexes acquis sous OS 9.

Je vous propose ici un bref explicatif du fonctionnement de la mémoire (RAM) sous OS X... Histoire de mieux maîtriser cet aspect un peu obscur de notre nouvel OS.

 

QU'EST-CE QUI A CHANGÉ PAR RAPPORT À MAC OS 9 ?

1. 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 aurait é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 constemment 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 Mac 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 !

2. 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 Mac 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.

3. 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 attribuer 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 !

4. La mémoire est protégée sous MAC OS X :
L'un des principaux avantages de Mac 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.

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. Vous êtes prêts ? Attachez vos ceintures... C'est parti !

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 "Internet Explorer", "Mail", "AppleWorks", "Aperçu" et "TextEdit"), ainsi qu'après avoir ouvert, fermé et réouvert un certain nombre d'applications, maintenez en quelques unes ouvertes (5 ou 6), puis...
...Ouvrez le fameux "Terminal". Tapez y la ligne de commande "top" (sans les guillemets) et appuyez sur la touche "Envoi" (la flêche qui fait demi-tour) pour valider cette commande.

Vous obtenez cette fenêtre :

---- Figure 1

Regardez la cinquième et la sixième lignes en partant du haut. Vous obtenez des indications intéressantes sur l'utilisation de la mémoire vive sous Mac OS X (Ces chiffres seront différents chez vous bien entendu) :

PhysMem: 145M wired, 333M active, 24M inactive, 503M used, 1536M free

Que celà signifie t-il ?
"PhysMem" (pour mémoire physique) détaille comment se répartit la mémoire vive que vous avez installé sur votre ordinateur. J'ai pour ma part 2 Go de mémoire vive, et celle-ci se répartit, au moment de cette capture d'écran (figure1) comme suit :
- 333 Mo active (mémoire actuellement en activité)
- 145 Mo wired (portion de mémoire vive "bloquée" par le système pour son utilisation propre)
- 1536 Mo free (mémoire vive libre et disponible)
- 24 Mo inactive (il s'agit là de mémoire vive qui a déjà été utilisée depuis l'ouverture de l'ordinateur, qui a donc déjà été allouée par le système OS X à telle ou telle application pour telle ou telle opération passée, mais qui n'est cependant plus en activité actuellement, et ce depuis un certain temps plus ou moins variable... Ça va ? vous suivez ?)
- 503 Mo used (Mémoire utilisée. C'est le total d'"active" + "wired" + "inactive")

34070(0) pageins 0(0) pageouts

Il s'agit là d'indications sur l'utilisation de la mémoire virtuelle : L'important ici est d'examiner le chiffre de "pageouts". Nous nous attarderons pas à la notion de "pageins", qui concerne également la mise en oeuvre de la mémoire vive et virtuelle sous OS X, mais qui est nettement moins révélateur que celle de "pageouts".
"Pageins"
et "pageouts" sont les deux composantes du processus de gestion de la mémoire sous OS X.

Qu'est ce que ces "pageouts" ? 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 le fichier "swapfile0" (vous vous rappelez ?) en complément de votre RAM physique. Une "page" équivaut à 4096 octets.
Autrement dit, si vous ne disposez pas d'assez de RAM, le système OS X est obligé de recourir à une portion de votre disque dur (le fichier swapfile0) 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é, celà signifie que vous disposez de suffisamment de RAM physique. Si le chiffre de "pageouts" est élevé, c'est que le système "swappe" beaucoup trop, et qu'il faudrait mieux que vous installiez de la RAM supplémentaire !

Le "swap" du système est tout à fait normal et peut se produire même si vous avez beaucoup 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 va "swapper", et parfois même, le fichier "swapfile0" ne suffira pas ! OS X créera alors automatiquement d'autres fichiers "swap" (swapfile1, swapfile2, swapfile3 etc...); Mais une fois revenu à une utilisation moins soutenue de votre MAC, et/ou si certaines applications sont fermées, alors OS X supprimera automatiquement ces fichiers swap supplémentaires, pour ne garder que le fichier "swapfile0" minimum. Le "swap" est normal sous OS X, mais trop de "swap" n'est pas bon ! Celà ne doit être qu'une roue de secours temporaire et ponctuelle, pas la règle ! Là aussi, OS X lance le "swap" quand il juge celà indispensable et DOIT POUVOIR l'arrêter quand celà ne l'est plus ! Si vous n'avez pas assez de RAM, vous allez donc "swapper" en permanence, et OS X sera d'une lenteur affligeante.

Par ailleurs, on peut de ce fait mieux comprendre alors l'intérêt éventuel de délocaliser le fichier "swapfile0" sur une autre partition entièrement dédiée au "swap" de Mac OS X, si on possède peu de RAM sur son ordinateur, même si depuis l'arrivée de JAGUAR, puis de PANTHER, TIGER et maintenant LEOPARD (qui sont des systèmes nettement plus véloces, réactifs et selon certains témoignages gèreraient nettement mieux la mémoire virtuelle que PUMA 10.1), l'utilité de faire cette opération de délocalisation semble nettement moins utile à présent et réservée uniquement à ceux qui ne possédent que peu de RAM dans leur ordinateur (1 Go) :

- Le fichier "swapfile0" ne se fragmente pas, et OS X n'est pas obligé d'aller en cueillir les fragments aux quatre coins de votre disque dur.
- Si des fichiers de "swap" complémentaires (swapfile1, swapfile2 etc...) se créent, ceux-ci seront créés "juste à côté" du fichier "swapfile0". OS X ne sera pas obligé, là non plus, de swapper aux quatres coins de votre disque dur. Il est en effet très important que les différents fichiers "swapfile" soient contigus, et non imbriqués dans d'autres fichiers installés sur votre disque dur, car OS X perdrait du temps à les rechercher.
- Le fait d'augmenter la taille par défaut du fichier "swapfile0" permet de gagner encore en efficacité, puisqu'un et seul fichier de 128 Mo est mieux que deux fichiers de 76 Mo, même contigus.

Quittez le "Terminal" en appuyant sur "ctrl"+"C", puis en le refermant (bouton rouge de sa fenêtre).


 

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, et qu'il convient donc de recourir au fichier "swapfile0", donc au disque dur. Pour celà, OS X va puiser dans la réserve de mémoire inactive mais déjà précédemment allouée ("inactive" - Voir plus haut). Ces "pages" inactives sont alors copiées temporairement sur le(s) fichier(s) swapfile0,1,2 etc... afin de faire de la place pour les "pages" actives ("active" - Voir plus haut) qui elles, sont alors copiées en retour depuis le(s) fichier(s) swapfile0,1,2 etc... vers la mémoire physique... CQFD !


Que faire s'il ne me reste que peu de mémoire disponible (free) : 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 un tas d'applications.

En réalité, OS X semble utiliser le "capital" mémoire dans son intégralité. Ne soyez donc pas effrayé de voir, dans le "Terminal" qu'il ne vous reste que peu de mémoire disponible (free), car de toute façon, celà est normal après quelques heures ou minutes d'utilisation de votre ordinateur : Que vous ayez 1 Go, 2 Go ou même plus de RAM installé sur votre ordinateur, OS X finira toujours par s'emparer de ce capital pour le gérer à sa guise et le distribuer généreusement aux différentes applications ouvertes. Mac OS X semble toujours s'accomoder de la mémoire dont il dispose. Toutefois, il est évident qu'avec 4 Go de RAM physique, OS X pourra en allouer dynamiquement d'avantage à chacune de vos applications ouvertes que s'il n'en disposait que de 1 Go.

Faites un petit test : Utilisez la petite application "Memory Usage Getter" - "MUG" (voir lien en bas de page pour le téléchargement), qui permet de voir combien de RAM physique est allouée à vos différentes applications. Lancez cette application, vous obtenez cette fenêtre :

----- Figure 2


Cette application vous donne à l'instant "T" une photographie parfaite de l'utilisation de la mémoire vive physique sous OS X.

En cliquant régulièrement sur le bouton "Mettre à jour", vous mettez à jour cette fenêtre, qui indiquent alors de nouvelles valeurs. Vous constaterez que ces nouvelles valeurs fluctuent en fonction de la quantité de mémoire vive nécessitée par l'utilisation respective de chacune des applications ouvertes.

Comme vous le constatez, lors de cette capture d'écran, à 14h 43 m 29 s, je disposais à nouveau de 1569,227 Mo de mémoire vive "free" (disponible), alors qu'à 14h 34 m 45 s (voir figure 1 plus haut, celle du "Terminal") je n'avais "que" 1536 Mo de disponible. J'ai gagné plus de 33 Mo de RAM, car j'avais quitté une ou deux applications entre temps, et de ce fait ma mémoire "free" est passée de 1536 Mo à 1569,227 ! (La mémoire ne se morcelle plus). Mais là n'est pas le plus important...

Je me suis en effet "amusé" à ouvrir un tas d'applications, pour voir justement comment allait "fondre au soleil" ces 1569,227 Mo de mémoire disponible. Certes, lors des premières ouvertures d'applications qui s'en sont suivies, le montant a progressivement chuté, pour arriver aux alentours de 150 Mo de disponible seulement au moment où j'ouvrais ma 30ième application (tout de même). Mais, et là ce fut une parfaite démonstration du caractère intelligent de Mac OS X et de sa manière totalement différente de gérer la mémoire vive, j'ai pu constater un curieux phénomène :

Alors que sous OS 9, je n'aurais déjà, depuis belle lurette, plus eu la possibilité d'ouvrir la moindre application, et bien sous OS X j'ai pu continuer à en ouvrir d'autres... Je me suis arrêté à 40 applications ouvertes (j'aurais pu sans doute même continuer, mais la démonstration était suffisamment convaincante à ce stade). Et, encore plus surprenant, une fois que j'avais atteint ce chiffre de 150 Mo de mémoire "free", et bien non seulement j'ai encore pu ouvrir une dizaine d'applications, mais en plus le chiffre de mémoire "free" est même remonté à 280 Mo !!! Incroyable non ?! Celà prouve bien la gestion dynamique de la mémoire vive sous Mac OS X ! Ce phénomène s'explique bien entendu par le fait que le système avait alors commencé à "swapper", libérant ainsi de la mémoire disponible ! Je n'ai cependant ressenti aucun ralentissement notoire.

Toutefois, il est évident qu'avec 40 applications ouvertes, le risque de "swapper" fort est nettement accru, surtout si l'on utilise effectivement ces 40 applications pour des tâches gourmandes en RAM. OS X alloue, dans cette hypothèse, nettement moins de mémoire à chacune des applications ouvertes, sans pour autant toutefois en interdire le fonctionnement... Quel progrès par rapport à OS 9 !

 


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 vous regardez la figure 2 (plus haut), le Finder ne "consomme" que 28,797 Mo de RAM. Ce chiffre n'est pas élevé, et jusqu'à 50 ou même 60 Mo, on peut considérer que ce chiffre est acceptable. Toutefois, 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, que Mac OS X semble réagir plus vite après quelques minutes d'utilisation : Après le démarrage de votre ordinateur sous Mac 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 "iPhoto", "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").

 

 

Astuce pour optimiser la RAM :

Si vous avez le logiciel "Leopard Cache Cleaner" (voir page "Entretien" sur ce site), vous pouvez aller dans l'onglet "Optimize", à la rubrique "System".


----


Cochez la case "Optimize RAM" puis cliquez sur "Run". Cette fonction permet d'optimiser la mémoire vive en transformant la mémoire inactive en mémoire disponible. Très pratique si après plusieurs heures d'utilisation de votre Mac vous n'avez plus beaucoup de mémoire disponible, mais beaucoup de mémoire inactive.


 

CONCLUSION :

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 :

  1. Il faut à tout prix ajouter de la RAM à votre ordinateur. 1 Go proposé par Apple sur ces machines n'est pas vraiment suffisant pour faire tourner OS X LEOPARD dans les meilleures conditions.Pour une utilisation confortable au quotidien, optez pour 2 Go minimum ! Ce chiffre est vraiment l'idéal 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, le MP3 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... Avec ces 2 Go, vous serez tranquille ! Par contre, si vous faites plutôt une utilisation professionnelle de votre Mac (PAO, traitement 3D, utilisation au quotidien de Filtres photoshop etc...) alors mieux vaut opter pour 4 Go, 8 Go voire plus de RAM (n'oubliez pas que LEOPARD est les G5 /Mac INTEL sont gourmands en RAM).
  2. 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 quasimment pas, ou même pas du tout de puissance processeur (CPU)... Donc pourquoi les refermer ? d'autant plus qu'avec 2 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 (1 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, si vraiment vous n'avez pas envie de voir OS X swapper... Mais là encore, celà 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...
    Selon certaines études sur les systèmes UNIX (vues sur Internet), on considère que sous OS X, en ayant 1 Go de RAM, on peut sans problème laisser entre 10 et 15 applications "standard" ouvertes, sans que les performances système ne s'en ressentent de manière significative. Certes OS X aura recours au "swap", mais de manière acceptable... Et sans répercussion significative... Vous voilà prévenu ! Maintenant si vous préférez tout de même fermer une application après l'avoir utilisé, quitte à la ré-ouvrir par la suite (il est parfois difficile de perdre ses bonnes habitudes d'OS 9), sachez que celà 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 !
    NB : Par application "standard", on doit exclure des applications très gourmandes en RAM comme "Photoshop" ou "Painter".
  3. Pour celles et ceux qui n'éteignent jamais, ou rarement leur ordinateur, sachez toutefois qu'à chaque redémarrage, OS X va créer un tout nouveau fichier "swapfile0". Dans ce cas, il est judicieux de redémarrer tout de même de temps en temps votre ordinateur pour qu'un fichier "swapfile0" tout beau, tout neuf se créé.

 

Liens :

- Page web de l'éditeur de "Memory Usage Getter", cliquez ICI

 

 

: : Mac OS X facile : : Mémoire