Comment mettre en œuvre un garbage collector?

Quelqu'un pourrait-il m'indiquer une bonne source d'information sur la façon de mettre en œuvre la collecte des ordures? Je fais un lisp comme langage interprété. Il utilise actuellement le comptage de référence, bien sûr mais qui ne parvient pas à libérer de façon circulaire les objets dépendants.

J'ai lu de la marque et de balayage, tricolore marquage, le déplacement et ne bouge pas, incrémentale et cessez-le-monde, mais... je ne sais pas quelle est la meilleure façon de garder les objets soigneusement séparés dans les jeux tout en gardant par-objet de surcharge de mémoire au minimum, ou comment faire les choses progressivement.

J'ai lu plusieurs langues avec de comptage de référence utilisation de la circulaire de référence de détection, que je pourrais utiliser. Je suis conscient que je pourrais utiliser librement disponible collectionneurs comme Boehm, mais je voudrais apprendre à le faire moi-même.

Je vous serais reconnaissant de tout matériel en ligne avec une sorte de tutoriel ou de l'aide pour les personnes n'ayant aucune expérience sur le sujet comme moi.

  • secure.wikimedia.org/wikipedia/en/wiki/...
  • Il ne faut pas commencer avec quelque chose de plus complexe qu'un proche-braindead cessez-le-monde marque et de balayage collector. Oubliez les jeux différentiels, des collections et des trucs du genre pour l'instant. Obtenir les racines, obtenir une liste de tous les objets vivants, etc. sera un défi suffisant pour votre premier essai.
  • Et plus précisément, les "stratégies de mise en œuvre de la section": secure.wikimedia.org/wikipedia/en/wiki/...
  • double possible de l'Apprentissage de la collecte des ordures de la théorie
  • Je ne suis pas d'accord que c'est un doublon. Que l'on est sur de la théorie, c'est sur la mise en œuvre et des tutoriels.
  • Vous voulez apprendre à faire de la collecte des ordures, à droite? Parce que sinon, il vous suffit d'utiliser Boehm-Demers-Weiser excellent conservateur garbage collector au moins jusqu'à ce que la langue est bien établie et a des applications réelles, à la mettre en valeur, parce que, jusqu'alors, il y a des choses plus urgentes que le petit morceau de performance que l'on peut extraire d'un gc.

InformationsquelleAutor salvador p | 2011-07-28