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