В дополнение к меток-и-развертки сборщики мусора для .Net и Java также запускают фазу уплотнения, чтобы сократить фрагментацию памяти. Я не могу найти какую-либо документацию по фазе уплотнения/дефрагментации для сборщика мусора Flash 9. У Flash нет фазы уплотнения?Фрагментация памяти Flash/ActionScript
ответ
Ну, я был довольно глубоко в вопросах управления памятью, и я общался с инженерами Adobe об этом, и я никогда не слышал упоминания о фазе дефрагментации. С другой стороны, кажется маловероятным, что они оставят это, и я, конечно, видел, как мое общее использование памяти сократилось после GC, как вы ожидали, если бы была фаза дефрагментации. Поэтому я бы сказал, что, вероятно, такая фаза.
Но я чувствую себя довольно уверенно в том, что я не думаю, что в любом случае есть официальные публичные документы. Я, конечно, никогда не видел. Если кто-то знает иначе, я с радостью отменяю, но на всякий случай вы не получите никаких других ответов.
Виртуальная машина для AS3, используемая Adobe во Flash, является открытым исходным кодом.
http://www.mozilla.org/projects/tamarin/
Диспетчер памяти для виртуальной машины, называется MMgc, входит в этот исходный код.
MMgc обеспечивает несъемный коллектор; после выделения объекты не перемещаются коллекционером. Это означает, что фаза уплотнения отсутствует.
Дополнительная документация по MMgc доступна здесь:
https://developer.mozilla.org/en/mmgc
Некоторые из более поздних работ документируется в каталоге документации репозитория-источника: