除了标记和扫描之外,.Net和Java的垃圾收集器还运行压缩阶段以减少内存碎片。我无法在Flash 9垃圾收集器的压缩/碎片整理阶段找到任何文档 - Flash没有任何压缩阶段吗?
答案 0 :(得分:3)
Adobe在Flash中使用的AS3虚拟机是开源的。
http://www.mozilla.org/projects/tamarin/
虚拟机的内存管理器名为MMgc,包含在该源代码中。
MMgc提供一个不动的收藏家;一旦分配,对象就不会被收集器移动。这意味着没有压缩阶段。
有关MMgc的更多文档,请点击此处:
https://developer.mozilla.org/en/mmgc
最近的一些工作正在源存储库的文档目录中记录:
答案 1 :(得分:2)
好吧,我已经深入研究了内存管理问题,并且我已经和Adobe工程师谈过这个问题了,我从来没有听说过碎片整理阶段。另一方面,他们似乎不太可能将它排除在外,而且我确实看到我的整体内存使用量在GC之后下降,就像你有一个碎片整理阶段那样。总的来说,我认为可能存在这样一个阶段。
但我对此感到相当自信的是,我认为无论如何都不会有任何正式的公开文件。无论如何,我当然没见过任何东西。如果有人不知道,我会高兴地撤销,但以防你没有得到任何其他答案。