macosx

AutoZone : nouveau projet open-source d'Apple

par Christophe Laporte le 14.11.2008 à 10:43
Suite à la sortie de Mac OS X 10.5.5, Apple a intégré dans Darwin 9.5, son pendant open-source un nouveau composant baptisé AutoZone. Il s'agit en fait du ramasse-miettes (garbage collector) introduit dans Leopard. Apple indique sur la page de présentation d'AutoZone que ce mécanisme va évoluer de façon significative dans Snow Leopard.

Ce ramasse-miettes est un mécanisme de gestion automatique de la mémoire à partir duquel les objets stockés en mémoire sont automatiquement et au fur et à mesure délocalisés. Il fonctionne par balayage et est multithreadé. Bien qu'ayant été développée pour le support de l'environnement Cocoa, l'implémentation est indépendante du langage utilisé, par exemple, le projet MacRuby (une version open source du langage Ruby 1.9 créée par Apple pour qu'elle puisse tourner directement au-dessus des technologies de Mac OS X) utilise AutoZone afin de fournir un récupérateur de mémoire automatique des graphes d'objets traversants Ruby et Objective-C.

Sur le même sujet :
- Retour sur Xcode 3.0
- Leopard et la gestion de la mémoire

2
1
Vos réactions (24 réactions)
SylvainH [14/11/2008 11:18]

... j'ai rien compris !
Euroxine [14/11/2008 11:25]

@SylvainH
C'est que tu ne programmes pas avec un langage moderne
Zouba [14/11/2008 11:26]

Quand on conçoit un programme, on stocke des informations dans la mémoire de l'ordinateur en allouant de l'espace mémoire. Avec certains langages, il faut désallouer explicitement la mémoire occupée avec une (ou plusieurs) ligne de code. Avec d'autres langages, pas besoin, un mécanisme automatique s'occupe de libérer les espaces qui ne sont plus utilisés : c'est le ramasse miette.

Donc Apple vient de mettre en open source le code de cet outil informatique qui permet de récupérer la mémoire qui n'est plus utilisée par un programme.
gloup gloup [14/11/2008 11:27]

C'est pour les informaticiens, pour la gestion de la mémoire dans les applications.
julien.alkaza [14/11/2008 11:29]

Donc, le titre de l'article aurait pu être : Autozone, le moineau d'Apple

Ok, ok, je sors ===============>
Obidjoule [14/11/2008 11:33]

@ Julien

Oui file... :-D le bon de sortie t'attend sur le bureau...
cyberdog [14/11/2008 11:34]

Pourquoi n'avez vous pas écrit cette news en français ?

;-)
jujuhtst [14/11/2008 11:41]

À noter que l'intérêt de Java est justement qu'il intègre un ramasse miette, ce qui simplifie le développement vu qu'il n'y a pas à allouer / désallouer la mémoire, la machine virtuelle le fait toute seule.
niko34 [14/11/2008 11:44]

Franchement, la gestion mémoire est ce qui m'a le plus surpris avec cocoa. On a l'impression de revenir des années en arrière. C'est plutôt une bonne nouvelle s'ils arrivent à faire évoluer le garbage collector pour faire comme en java ou .net. La version Leopard, c'est pas un gc automatique et en plus on peut pas s'en servir pour l'iphone.
Zed-K [14/11/2008 11:50]

@jujuhtst:
Quand je vois la consommation astronomique de RAM d'Azureus sur mon Mac Pro, j'ai des doutes sur l'efficacité du Garbage Collector de Java quand même =p
Vivement la sortie de µtorrent =p
g.lebourgeois [14/11/2008 11:58]

"À noter que l'intérêt de Java est justement qu'il intègre un ramasse miette"

Sinon il reste la solution d'apprendre à programmer correctement et de savoir gérer ses allocations mémoire. Ca permet de profiter ensuite de l'héritage multiple, la surcharge d'opérateurs, ... bref, d'un vrai langage.
Hindifarai [14/11/2008 12:02]

Bonne nouvelle. Les applications lourdes devraient s'en voire améliorées sur la gestion mémoire. J'ai beau être de manière globale plutôt contre les garbage collectors(ou du moins pour le fait d'avoir le choix), cette nouvelle annonce un projet qui va de l'avant et fait avancer Darwin dans le bon sens.
egw [14/11/2008 12:14]

"Ca permet de profiter ensuite de l'héritage multiple, la surcharge d'opérateurs"

Heum heum... Je crois que j'ai mal entendu. Voici deux hérésies de la programmation objet. Je suppose que ce que tu as derrière la tête c'est C++. Alors là, parler de cet accident de l'histoire qu'est C++ en tant que "vrai langage", ça me fait mal.

Ensuite, comme pour toutes légendes urbaines qui collent toujours au monde de l'informatique et de la programmation en particulier (celles qui commencent par : "real men do..."), celle du garbage collector qui est fait pour les nuls qui savent pas coder est encore particulièrement tenace. Non, un garbage collector digne de ce nom (je ne parle pas de Java) n'est ni plus ni moins efficace de des désallocations manuelles. As-tu des benchs qui montrent qu'un programme sous Leopard codé en Objective-C avec ou sans Garbage Collector est plus ou moins performant ?
Hindifarai [14/11/2008 12:34]

Il faut vous détendre egw, aucune gravité dans le sujet traité ici :) .
Pour ce qui est des différences de performances entre un programme en Objective-C avec et sans garbage collector, je parle d'une certaine future amélioration. Je me base sur le simple fait qu'un garbage collector moderne ne ralentit pas l'application au moment de la desallocation et que le code gérant la mémoire est dispersé partout dans une grosse appli, rendant la maintenance extrêmemetn compliquée, pour gérer ce problème soit on se penche vers la programmation par aspect soit vers un garbage collector(je n'ai jamais regardé le code d'un garbage collector mais certains concepts sont transversaux). Il existe par exemple en AspectC un travail universitaire qui a été effectué qui permet de greffer un aspect à n'importe quel programme écrit en C (c'est pas objet, c'est juste une illustration sur la mémoire) qui va empêcher tout buffer overflow de se produire, en langage objet avec la gestion du cflow on peut définir la durée de vie d'un objet et donc créer un garbage collector assez facilement.
Concernant votre jugement sur le C++, j'éviterai un long discours basé sur les avantages de tel ou tel langage, c'est inutile, idem pour l'héitage multiple et la surcharge d'opérateurs(qui peuvent être utiles comme ils peuvent devenir un frein dans le développement).
Axelvak [14/11/2008 12:47]

Vivement la sortie de µtorrent =p


Quand on voit ce que propose Transmission, on se demande ce que µTorrent pourrait apporter de plus…
2
1

Réagir

Cinq consignes avant de réagir :
  1. Rester dans le cadre de la dépêche. Pour des discussions plus générales, vous pouvez utiliser nos forums.
  2. Développer son argumentation. Les messages dont le seul but est de mettre de l'huile sur le feu seront modifiés ou effacés sans préavis par la rédaction.
  3. Respecter les acteurs de l'informatique et les autres lecteurs. Les messages agressifs, vulgaires, haineux, etc. seront modifiés ou effacés sans préavis par la rédaction.
  4. Pour toute remarque concernant le contenu de l'article, pour nous signaler une erreur, une faute d'orthographe, une omission, merci de nous contacter exclusivement par e-mail.
  5. Relisez-vous, et pour les utilisateurs de Safari profitez de l'aide du navigateur : activez le menu édition > Orthographe > Vérifier l'orthographe lors de la frappe.