对于游戏(使用AIR for iOS),我想阻止GC在特定的30秒内运行(因为它会导致非常显着的滞后)。adobe AIR:阻止GC运行
我已经做的就是在序列开始之前调用System.gc()。在序列中,我不会创建许多新对象,只有一些动画播放和对象移动(以3D形式)。一些物体移出舞台。
在此序列中的存储器统计aproximately:
System.totalMemory: 4.5 MB
System.freeMemory: 1.0 MB
System.privateMemory: 75 MB
当GC火灾,该System.privateMemory下降到74 MB,但会导致aproximately一秒的延迟。 GC在这30秒的时间内发射两次。
所以我的问题是关于任何技术,黑客或workarrounds(除了优化内存使用一般 - 显然我已经在这方面工作),以防止GC在这30秒内发射?
感谢。
你有很多的对象? – Cameron 2012-02-25 04:28:16
好 - 有很多 - 几百个我会说 - 但我并没有在这个序列中创建大量新的(我可能添加50个显示对象,并在30秒内再次移除它们) – Mat 2012-02-25 05:40:06
它会帮助创建对象在序列之前,保持它们不可见,并且只是通过可见性进行播放,不会使用对象创建/删除来警告GC ... – catholicon 2012-02-25 08:39:27