关于flex4.0回收(强制回收)

adobe的内存回收机制确实不尽人意.特别是大数据量时内存回收问题更显突出.

以前有哥们曾经探讨过用异常的方式使flex强制进行内存回收.

不过flex4.0之后框架的性能等有明显提升,而且一些类也添加删除了不少方法

现在小小总结一下

 

gc的核心代码如下,GCClass

		public static function GC()
		{
			try
			{
				var lc1:LocalConnection = new LocalConnection();
				lc1.connect('引发异常内容');

			}
			catch(e:Error)
			{
			}
		}

 

测试目标:1.序什么时候gc

              2.将对象设置为null是否有用

              3.创建监听后是否应该及时移除

              4.videoDisplay在flex3.0和4.0中的区别

 

 

测试方法:在主程序中调用定时器或者在帧中,执行测试代码.

主要测试代码:

a.创建对象

private function gcTest():void
{
      var obj:Object= new Object();
}

 

在flex3.0中内存是一直网上跳,但在4.0中框架可能做了处理,内存不会消耗太多.

如果加入gc代码

 

private function gcTest():void
{
      var obj:Object= new Object();
      GCClass.GC();
}

 

 

 则内存会一直平稳不增长.

b.添加监听

添加监听后必须移除监听,才能在强制回收时释放所占内存

c.加载外部文件flv

		var flvplay:VideoDisplay = new VideoDisplay();
		this.addElement(flvplay);
		flvplay.source ="video2.FLV";
		flvplay.play();
//		flvplay.source =null;
				
//		//首先关闭啊
		this.removeElement(flvplay);
                                GCClass.gc();

  

只有在关闭流(flex4.0中flvplay没有close方法,只能将flvplay.source=null),并移除显示对象,才能在内存回收时释放掉所占内存

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值