Flex学习笔记(十三)——内存泄露
来源:互联网 发布:mac地址长度为多少位 编辑:程序博客网 时间:2024/05/21 14:44
原因:
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的信息
提供一定的控制能力内存剪切板、摄像头、麦克风等
- Flex学习笔记(十三)——内存泄露
- 属性—Swift学习笔记(十三)
- java内存泄露学习笔记
- Flex内存泄露问题
- flex内存泄露解决之道
- Flex内存泄露问题
- Flex内存泄露场景
- 学习笔记(十三)
- 学习笔记 VS2005内存泄露检查
- Android学习笔记之Handler内存泄露
- netty5学习笔记-内存泄露检测
- Android学习笔记(十三)——碎片(一)
- 设计模式学习笔记(十三)——Proxy代理
- Android学习笔记(十三)——socket的使用
- OpenCV学习笔记(十三)——模板匹配
- struts2学习笔记(十三)——ajax的支持
- WMI013-WMI学习笔记(十三)——Win32_Desktop
- OpenCV学习笔记(十三)——模板匹配
- iOS4中Core Motion框架的介绍和使用
- initialize a static const value outside of Constructor only for integral types
- Android学习笔记(10)---关于线程Thread的使用
- Profile 的翻译
- Oracle 11g NET Manager 配置步骤
- Flex学习笔记(十三)——内存泄露
- 单元测试覆盖率插件clover的破解及使用
- Retrieve the Windows 7 Password Hash on the Fly
- session存储
- sql convert函数使用小结
- POJ - 1269:Intersecting Lines__判断两直线相交
- win7codecs下载及安装之类
- Flex学习笔记(十四)——网页交互
- 子元素浮动div不会被撑大