Ответ 1
Никогда не играл с ним сам, но тот, который всегда упоминается для использования с C/С++, Hans Boehm.
Мне интересно, как работает сбор мусора. Я прочитал, как некоторые работы, такие как mark-and-sweep, stop-and-copy, generational GC и т.д. Я бы хотел поэкспериментировать с реализацией некоторых из них и сравнением их поведения. Какой хороший способ начать экспериментировать с моим собственным? В идеале что-то в C, Java или Python (хотя последние два сами собираются с мусором, поэтому кажется, что их будет сложно использовать)
Никогда не играл с ним сам, но тот, который всегда упоминается для использования с C/С++, Hans Boehm.
среда выполнения .NET и среда выполнения Java теперь имеют открытый исходный код, поэтому вы можете поэкспериментировать с временем выполнения, если хотите играть с текущим языком программирования поддержки. Однако, если вы захотите сделать это самостоятельно, вам, вероятно, придется создать собственную среду выполнения, которая имеет собственный язык.
Parrot имеет несколько сборщиков мусора.
Внедрите свою собственную JVM. Ничего необычного, просто основы. Есть много и много программ/компиляторов/языков, которые генерируют JVM-код, поэтому у вас есть много материала для тестирования.
Приятно поиграть, но сбор мусора - темное искусство. Не для того, чтобы он работал, но чтобы он работал с эффективностью, которую делают новейшие виртуальные машины.
Мы говорим о многоступенчатой и магии, которая делает скорость распределения более сопоставимой с распределением стека, чем malloc.
Повсюду развивается концепция эденов.
Возможно, вы захотите прочитать некоторые рекомендации по используемым технологиям.
Вот статья, которая, кажется, имеет хороший обзор (просто из быстрого google/scan)
Слава Пестов, который разрабатывает Факторный язык программирования написал несколько сообщений о его реализации сборщика мусора. Вы можете найти сообщения об этом по этой ссылке:
http://factor-language.blogspot.com/search?q=garbage+collection
в частности, начните с должности в воскресенье, 24 сентября 2006 г.
MMTk содержит большой набор сборщиков мусора высокой производительности. Он включает в себя:
Он также имеет:
Так как это исследовательская платформа, у нее есть некоторые продвинутые коллекторы, такие как сборщик подсчетов ссылок.