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不知道在大型的项目中到底有没有实际用途,是否会导致一些其他的副作用,例如影响某些代码的运行之类的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值