Flash / ActionScript内存碎片

时间:2009-06-11 20:02:32

标签: flash actionscript-3 memory-management garbage-collection heap-fragmentation

除了标记和扫描之外,.Net和Java的垃圾收集器还运行压缩阶段以减少内存碎片。我无法在Flash 9垃圾收集器的压缩/碎片整理阶段找到任何文档 - Flash没有任何压缩阶段吗?

2 个答案:

答案 0 :(得分:3)

Adob​​e在Flash中使用的AS3虚拟机是开源的。

http://www.mozilla.org/projects/tamarin/

虚拟机的内存管理器名为MMgc,包含在该源代码中。

MMgc提供一个不动的收藏家;一旦分配,对象就不会被收集器移动。这意味着没有压缩阶段。

有关MMgc的更多文档,请点击此处:

https://developer.mozilla.org/en/mmgc

最近的一些工作正在源存储库的文档目录中记录:

http://hg.mozilla.org/tamarin-redux/file/tip/doc/mmgc

答案 1 :(得分:2)

好吧,我已经深入研究了内存管理问题,并且我已经和Adobe工程师谈过这个问题了,我从来没有听说过碎片整理阶段。另一方面,他们似乎不太可能将它排除在外,而且我确实看到我的整体内存使用量在GC之后下降,就像你有一个碎片整理阶段那样。总的来说,我认为可能存在这样一个阶段。

但我对此感到相当自信的是,我认为无论如何都不会有任何正式的公开文件。无论如何,我当然没见过任何东西。如果有人不知道,我会高兴地撤销,但以防你没有得到任何其他答案。