加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Flex学习笔记(十三)——内存泄露

发布时间:2020-12-15 04:52:22 所属栏目:百科 来源:网络整理
导读:原因: 1. ?????? 某些对象不被全局对象引用时,忘记从全局对象清除对他们的引用,如 Stage 、主 Application 、类的静态成员变量以及使用单例模式创建的实例 2. ?????? 无限次触发的 Timer 3. ?????? 隐式方式建立的对象引用,如为对象添加事件监听器。如 a

原因:

1.?????? 某些对象不被全局对象引用时,忘记从全局对象清除对他们的引用,如Stage、主Application、类的静态成员变量以及使用单例模式创建的实例

2.?????? 无限次触发的Timer

3.?????? 隐式方式建立的对象引用,如为对象添加事件监听器。如 a.addEventListener(Event.Type,b.listenerFunc). 如果a是全局对象如stage,则b对象永远不会被垃圾回收,不过以下三种addEventListener不会内存泄漏

1)? 弱引用注册监听器,即第5个参数设为true

2)? 自引用方式,如

This.addEventListener(type,this.handlerFunc);

3)? 子对象引用

This.addEventListener(type,this.parent.handlerFunc);

方法处理:

???????? 停止已经启动的timer

???????? 对组件应用了Effect,当删除组件时,先停止效果,再把效果的target属性设为null

???????? 使用ChangeWatcher.watch()后调用ChangeWatcher.unwatch()来清除引用

???????? 使用ModuleLoaderde loadModule后,使用unLoadModule将其卸载,并将该模块对象的引用置为null

???????? 使用Graphics画图,将不再显示的图像使用clear()清除

???????? Image使用完后,将source设置为null

???????? 当不需要音乐或视频时,停止音乐、删除对象、将引用设置为null

分析工具——profile? as

?????????????????? 点击【强制垃圾回收】,如果确定已经完全移除和清除对象的引用,则活动对象列表中的类会减少

?????????????????? 累计实例数代表总共多少实例被创建,实例数代表当前存在的对象实例。如果运行Force GC后累计实例数和实例数数量相同,则可能存在内存泄漏。

?????????????????? “内存使用情况”中灰线和黑线从不分离,则说明有内存泄漏。

Flash.system

???????? 提供了一些系统类,帮助开发者获取一些Flash的信息

提供一定的控制能力内存剪切板、摄像头、麦克风等

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读