Comment Snow Leopard économise votre mémoire
Par Didier Pulicani - Publié le
Dans un billet de son blog, Greg Parker (de Sealie Software) nous explique comment Snow Leopard joue les grands économes en mémoire, grâce à un système de cache intelligent. Sans trop entrer dans les détails, lorsqu'un développeur programme une application, il utilise des librairies. Il s'agit de composants externes, développés par d'autres sociétés, que vous pouvez
incluredans votre application. Généralement ces bibliothèques sont fournies par le SDK de l'éditeur, mais peuvent très bien être payantes et développées par des éditeurs tiers.
A chaque fois que vous lancez une application X qui va utiliser la librairie A, puis une application Y, qui va également utiliser la librairie A, cette même librairie va être chargée deux fois, car théoriquement, elle pourrait avoir changé entre les deux chargements. Dans les faits, ce n'est presque jamais le cas, et c'est la même librairie qui est présente deux fois en mémoire inutilement. Snow Leopard possède un système qui permet de palier ce problème et ainsi, d'économiser un certain nombre d'octets pour chaque application lancée. Cette optimisation était déjà plus ou moins opérationnelle dans Leopard (rappelez-vous, le fameux message
Optimisation des performances du systèmeà la fin des installations), et concernait avant tout les librairies C.
La grosse nouveauté avec Snow Leopard concerne surtout l'Objective-C. Là encore, nous n'entrerons pas dans les détails, mais le problème est le même, mais avec les
selector. Le nouveau félin permettrait désormais d'économiser entre 200 et 500Ko par processus en créant un cache sur les sélecteurs partagés. La conséquence est immédiate : les applications se lancent plus vite, et consomment moins de RAM. Comme le précise Greg, voilà une améliorations qui serait bienvenue sur l'iPhone, qui ne possède que très peu de mémoire vive disponible.