当前位置: 代码迷 >> Web前端 >> AS3挟制启动GC(垃圾回收器)的trick
  详细解决方案

AS3挟制启动GC(垃圾回收器)的trick

热度:85   发布时间:2012-11-14 10:12:19.0
AS3强制启动GC(垃圾回收器)的trick
今天闲着看了看Flash的内存垃圾回收机制,发现网上有这么个用法:

try{
 new LocalConnection().connect("foo");
 new LocalConnection().connect("foo");
}catch(e:*){
}



他们据说是AVM2在某些错误发生的时候一定会启动一次GC,所以只要手动引发一次错误就可以了。

我也做了一下实验,new 出来100 个MovieClip,然后手动将每一个置NULL,然后再生成,反复10来次。 发现基本上垃圾对象只有在大于1000个左右才会被主动回收(也不一定是1000个,应该与movieClip大小有关系)。

然后我尝试在每次的dispose的结尾插入上述的代码,发现基本上每一次的dispose都会触发一次GC,的确是有用。但是这种手动触发的GC不知道在大型的项目中到底有没有实际用途,是否会导致一些其他的副作用,例如影响某些代码的运行之类的。
1 楼 damoqiongqiu 2011-03-07  
貌似和Timer有冲突,还有TweenMax包似乎也会有一些异常状况,正在测试中。