千家信息网

Flex内存优化技巧有哪些

发表于:2024-11-26 作者:千家信息网编辑
千家信息网最后更新 2024年11月26日,这篇文章主要介绍Flex内存优化技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Flex内存优化原则1.被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收
千家信息网最后更新 2024年11月26日Flex内存优化技巧有哪些

这篇文章主要介绍Flex内存优化技巧有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

Flex内存优化原则

1.被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉;

2.父对象内部的子对象被外部其他对象引用了,会导致此子对象不会被删除,子对象不会被删除又会导致了父对象不会被删除;

3.如果一个对象中引用了外部对象,当自己被删除或者不需要使用此引用对象时,一定要记得把此对象的引用设置为null;

4.本对象删除不了的原因不一定是自己被引用了,也有可能是自己的孩子被外部引用了,孩子删不掉导致父亲也删不掉;

5.除了引用需要删除外,系统组件或者全局工具、管理类如果提供了卸载方法的就一定要调用删除内部对象,否则有可能会造成内存泄露和性能损失;

6.父对象立刻被删除了不代表子对象就会被删除或立刻被删除,可能会在后期被系统自动删除或第二次移除操作时被删除;

7.如果父对象remove了子对象后没有清除对子对象的引用,子对象一样是不能被删除的,父对象也不能被删除;

8.注册的事件如果没有被移除不影响自定义的强行回收机制,但有可能会影响正常的回收机制,所以***是做到注册的事件监听器都要记得移除干净。

9.父对象被删除了不代表其余子对象都删除了,找到一种状态的泄露代码不等于其他状态就没有泄露了,要各模块各状态逐个进行测试分析,直到测试任何状态下都能删除整个对象为止。


Flex内存优化中Flex内存泄露举例:

1.引用泄露:对子对象的引用,外部对本对象或子对象的引用都需要置null;

2.系统类泄露:使用了系统类而忘记做删除操作了,如BindingUtils.bindSetter(),ChangeWatcher.watch()函数时候完毕后需要调用ChangeWatcher.unwatch()函数来清除引用,否则使用此函数的对象将不会被删除;

类似的还有MUSIC,VIDEO,IMAGE,TIMER,EVENT,BINDING等。
3.效果泄露:当对组件应用效果Effect的时候,当本对象本删除时需要把本对象和子对象上的Effect动画停止掉,然后把Effect的target对象置null;如果不停止掉动画直接把Effect置null将不能正常移除对象。

4.SWF泄露:要完全删除一个SWF要调用它的unload()方法并且把对象置null;

5.图片泄露:当Image对象使用完毕后要把source置null;(为测试);

6.声音、视频泄露:当不需要一个音乐或视频是需要停止音乐,删除对象,引用置null;


Flex内存优化时Flex内存泄露解决方法:

1.在组件的REMOVED_FROM_STAGE事件回掉中做垃圾处理操作(移除所有对外引用(不管是VO还是组件的都需要删除),删除监听器,调用系统类的清除方法)
先remove再置null,确保被remove或者removeAll后的对象在外部的引用全部释放干净;

2.利用Flex的性能优化工具Profile来对项目进程进行监控,可知道历史创建过哪些对象,目前有哪些对象没有被删除,创建的数量,占用的内存比例和用量,创建过程等信息;

以上是"Flex内存优化技巧有哪些"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

对象 内存 系统 方法 状态 组件 干净 事件 函数 测试 技巧 代表 内容 动画 垃圾 孩子 对子 工具 性能 效果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 联想服务器硬盘报警灯 深圳应用软件开发哪家专业 网络安全法 重要意义 数据库能存json数据吗 黑客数据库管理 文明重启服务器代码大全 c3p0数据库的删除方法 北京二手服务器回收企业云空间 萧山区软件开发app 滨州轻工业软件开发服务 怎么删除游戏菜单数据库 软件开发后版权问题 软件开发的市场份额 服务器访问文件失败 小七服务器和腾讯熹妃传 手机上网显示服务器地址错误 附加 和 还原数据库文件 研究所软件开发劳务派遣 数字资产量化交易软件开发公司 网络安全研究院有前途吗 设计一个有用的网络安全方案 四川办公系统软件开发费用 什么是网络技术询问报价 北京二手服务器回收企业云空间 西安展海互联网科技有限公司 oracle数据库怎么用 合作网络安全态势感知装置 数据库专业研究方向 数据库文件能多个用户同时访问吗 泰州小型网络技术解决方案
0