Flex内存泄露问题定位

使用Flash Builder IDE的内置的profile内存分析工具

打开profile工具

右击整个工程  “Profile As”  Web应用程序,打开FB内置的内存分析工具。

检测内存使用情况

右上角是内存峰值和当前总内存的监视器

 下面的活动对象是各个对象现在的使用情况,包括累计实例数、当前实例数、累计内存、当前内存大小。我们一般最关心当前的实例数和当前的内存占用情况。

 可以在页面做任何操作,所有的内存波动都反映到这个监控页面上


分析主要原因

我们的MVC架构中,是以事件作为消息传递机制,而我们原来只加了监听,没有清除动作,所以此监听涉及的部分不会被AVM回收。

代码中的全局变量,存储一些中间信息,这种全局变量不清空,引用所涉及的内存不会被释放

子对象无法释放,导致父对象无法释放


代码实现简述

主要释放全局变量和移除监听, 尤其注意每次释放监听

 如果不是全生命周期的监听,要设置成弱引用

监听函数最后一个参数设为TRUE,标识弱引用

释放父变量前,要确保子变量释放

对于关键对象,自定义子类,监视所有监听的添加情况

覆写addEventListener方法,监视所有监听的添加,保存所有监听于全局变量,便于回收时,移除所有监听

释放此对象时,一次性释放所有的监听


参考

http://blog.csdn.net/lena_20081215/article/details/3735708



转载于:https://my.oschina.net/bigsloth/blog/187235

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值