Flex 内存处理的方法。

flash内存 性能优化篇. flash内存 性能优化篇. flash内存 性能优化篇. flash内存 性能优化篇. flash内存 性能优化篇. 立即下载
1.当任何对象unload后,flash player不会自动的回收内存,机制本身判断应该是判断周期时间内增长内存量而去自动回收,当然也你可以通过System.gc() 去主动回收。但是这样回收是无法回收干净的。 
2. flash player内存分配有两种机制,一种是静态的,当前我发现只用lite才有这个支持,他对内存管理比较严格,把独立的player都放里面。 第二种就是动态的,这个方式缺点就是产生内存散片,这个散片必须要根player over它才会全部释放,否则,散片部分一直增长。


FLEX
内存释放优化原则:1. 被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉; 
2. 父对象内部的子对象被外部其他对象引用了,会导致此子对象不会被删除,子对象不会被删除又会导致了父对象不会被删除; 
3. 如果一个对象中引用了外部对象,当自己被删除或者不需要使用此引用对象时,一定要记得把此对象的引用设置为null; 
4. 本对象删除不了的原因不一定是自己被引用了,也有可能是自己的孩子被外部引用了,孩子删不掉导致父亲也删不掉; 
5. 除了引用需要删除外,系统组件或者全局工具、管理类如果提供了卸载方法的就一定要调用删除内部对象,否则有可能会造成内存泄露和性能损失; 
6. 父对象立刻被删除了不代表子对象就会被删除或立刻被删除,可能会在后期被系统自动删除或第二次移除操作时被删除; 
7. 如果父对象remove了子对象后没有清除对子对象的引用,子对象一样是不能被删除的,父对象也不能被删除; 
8. 注册的事件如果没有被移除不影响自定义的强行回收机制,但有可能会影响正常的回收机制,所以最好是做到注册的事件监听器都要记得移除干净。 
9. 父对象被删除了不代表其余子对象都删除了,找到一种状态的泄露代码不等于其他状态就没有泄露了,要各模块各状态逐个进行测试分析,直到测试任何状态下都能删除整个对象为止。 


内存泄露举例: 

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; 

内存泄露解决方法: 
1. 在组件的REMOVED_FROM_STAGE事件回掉中做垃圾处理操作(移除所有对外引用(不管是VO还是组件的都需要删除),删除监听器,调用系统类的清除方法) 
先remove再置null, 确保被remove或者removeAll后的对象在外部的引用全部释放干净; 
2. 利用Flex的性能优化工具Profile来对项目进程进行监控,可知道历史创建过哪些对象,目前有哪些对象没有被删除,创建的数量,占用的内存比例和用量,创建过程等信息; 

总结:关键还是要做好清除工作,自己设置的引用自己要记得删除,自己用过的系统类要记得做好回收处理工作。 以上问题解决的好的话不需要自定义强制回收器也有可能被系统正常的自动回收掉。
天祥TX-1C单片机开发板-秒表程序 郭天祥TX-1C开发板实现秒表程序 附开发板图片和原理图 代码 #include <reg52.h> sbit key1=P3^4; //按键S2 sbit key2=P3^5; //按键S3 sbit U1=P2^6; //LED位选 sbit U2=P2^7; //LED片选 unsigned char code ledchar[]={ /... 阅读详情

相关推荐

工业异常检测评价指标(I-AUROC、PRO等)

模型评价指标:TPR、FPR、Recall、ROC、AUC、AUROC、IoU、PRO、AUPRO等

qq_1532145264的博客 7437

FLEX内存释放优化原则

FLEX内存释放优化原则:1. 被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉; 2. 父对象内部的子对象被外部其他对象引用了,会导致此子对象不会被删除,子对象不会被删除又会导致了父对象不会被删除; 3. 如果一个对象中引用了外部对象,当自己被删除或者不需要使用此引用对象时,一定要记得把此对象的引用设置为null; 4. 本对象删除不了的原因不一定是自己被引用了,也有...

bufanliu 207

从玩具车到手机充电:手把手带你用Multisim仿真Buck/Boost电路(附工程文件)

本文通过Multisim仿真软件,手把手教你搭建Buck降压电路和Boost升压电路,实现从12V到5V或3.7V到5V的电压转换。文章详细介绍了电路搭建步骤、关键波形观测技巧及常见故障排查方法,并附赠工程文件,帮助电子爱好者快速掌握电源转换技术。

weixin_29159127的博客 243

vue实现直播弹幕功能

前端校招精编面试解析大全点击这里即可获取完整版pdf查看实战项目、讲解视频,并且会持续更新!**如果你觉得这些内容对你有帮助,可以扫码获取!!(资料价值较高,非无偿)前端校招精编面试解析大全点击这里即可获取完整版pdf查看。

2301_82242670的博客 946

(R,线性回归)R语言里的模型诊断图(Residuals vs Fitted,Normal QQ , Scale-Location ,Residuals Leverage)

线性回归,是概率统计学里最重要的统计方法,也是机器学习中一类非常重要的算法。线性模型简单理解非常容易,但是内涵是非常深奥的。尤其是线性回归模型中的Diagnostics plot的阅读与理解一直被认为是线性回归中的一个难点。 在任何线性模型中,能够直接“lm”(模型有意义),既要考虑各个参数的t-test所得出的p-value,也要考虑总体模型F-检验得出的p-value。在这之后,还要清楚一个...

qq_35837578的博客 7万+

FMEA-MSR步骤三:功能分析

目的 FMEA-MSR功能分析的主要目标: ● 功能及各功能之间的关系的可视化 ● 功能树/网络或等效功能矩阵参数图(P图) ● 顾客(外部和内部)功能与相关要求的关联 ● 要求或特性与功能的关联 ● 工程团队(系统、安全和组件)之间的协作 ● 失效分析步骤的基础 (点击链接进入官网领取软件试用) 在监视及系统响应的补充FMEA中,对失效探测和失效响应的监视视为其具有的功能。硬件和软件功能可能包括监视控制状态的功能。 故障/失效的监视和探测功能可能包括超出范围的探测、循环冗余校验、真实性检查和序列计数器检查

Infomass的博客 2391

Flex和AIR中的垃圾回收实践之对象缓存[译文]

最近研究了一下Flex的性能测试(Flex Profiling)和内存泄漏问题,看到一篇好的文章,主要是讲removeChild()方法其实并没有真正把对象销毁,其实内有乾坤。 原文在这里:Garbage Collection with Flex and Adobe Air 译文在这里:http://www.riadev.com/flex-thread-197-1-1.html

行路中 864

【重识云原生】第四章云网络4.7.5节vDPA方案——virtio的半硬件虚拟化实现

vDPA(vhost Data Path Acceleration)即是让virtio数据平面不需主机干预的解决方案。该框架由Redhat提出,实现了virtio数据平面的硬件卸载。控制平面仍然采用原来的控制平面协议,当控制信息被传递到硬件中,硬件完成数据平面的配置之后,数据通信过程由硬件设备(智能网卡)完成,虚拟机与网卡之间直通。中断信息也由网卡直接发送至虚拟机不需要主机的干预。......

junbaozi的专栏 2188

Flex 有效的内存回收方法

Flex 的内存回收问题,相信是很多从事flex开发里很头疼的问题,在网上也有一些方法回收内存,今天发现一个非常有效的内存回收方法,我们需要连续调用gc,第一次回收废弃的任何对象的标记和清除老的标记,第二次清除第一次清除对象的标记. 代码如下:[code="java"] private var gcCount:int; private function startGCCycle() : vo...

flysnail2007的专栏 185

Python 安装 PyTorch(GPU)详细教程

本章教程,介绍如何安装PyTorch GPU版本的具体教程。

猿小白的博客 1631

点云处理指南介绍

指南目录,Open3D与PCL内容介绍

NNNNNathan的博客 1万+

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

adobe的内存回收机制确实不尽人意.特别是大数据量时内存回收问题更显突出. 以前有哥们曾经探讨过用异常的方式使flex强制进行内存回收. 不过flex4.0之后框架的性能等有明显提升,而且一些类也添加删除了不少方法 现在小小总结一下   gc的核心代码如下,GCClass public static function GC() { try { va...

那是啥啥啥 205

【异常】Cursor编辑器 “Taking longer than expected...“ 报错全链路排查与解决方案

该提示并非传统的程序崩溃或语法报错,本质是Cursor编辑器的超时预警机制——当核心任务(云端AI推理请求、本地项目索引等)的执行耗时超出系统预设阈值时,触发的用户告知类提示,核心诱因是任务执行全链路出现阻塞或性能瓶颈。以下方案按排查优先级从高到低排序,覆盖从快速急救到根因根治的全流程,可按步骤逐步验证解决。针对大仓库、多依赖项目的索引超时问题,核心是通过规则过滤无效文件,从根源降低索引负载。

奶爸的编程之路,也就一周冷个三天 3103

Flex 内存处理的方法

[color=indigo][size=large]1.当任何对象unload后,flash player不会自动的回收内存,机制本身判断应该是判断周期时间内增长内存量而去自动回收,当然也你可以通过System.gc() 去主动回收。但是这样回收是无法回收干净的。 2. flash player内存分配有两种机制,一种是静态的,当前我发现只用lite才有这个支持,他对内存管理比较严格,把独立的...

技术交流 174

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Flex内存泄露解决方法和内存释放优化原则

Flex内存泄露解决方法和内存释放优化原则 你对Flex内存泄露的概念是否了解,这里和大家分享一下Flex内存释放优化原则和Flex内存泄露解决方法,希望本文的介绍能让你有所收获。 Flex内存释放优化原则 1.被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉; 2.父对象内部的子对象被外部其他对象引用了,会导致此子对象不会被删除,子对象不会被删除

游海东的技术专栏 1326

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

flex内存释放优化

FLEX内存释放优化原则: 1. 被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉; 2. 父对象内部的子对象被外部其他对象引用了,会导致此子对象不会被删除,子对象不会被删除又会导致了父对象不会被删除; 3. 如果一个对象中引用了外部对象,当自己被删除或者不需要使用此引用对象时,一定要记得把此对象的引用设置为null; 4. 本对象删除不了的原因不一定是自己被引用...

雄关漫道真如铁,而今迈步从头越 130

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Flex内存优化

FLEX内存释放优化原则:1. 被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉; 2. 父对象内部的子对象被外部其他对象引用了,会导致此子对象不会被删除,子对象不会被删除又会导致了父对象不会被删除; 3. 如果一个对象中引用了外部对象,当自己被删除或者不需

MS+Flex 353

Flex内存问题

FLEX内存释放优化原则:1. 被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉; 2. 父对象内部的子对象被外部其他对象引用了,会导致此子对象不会被删除,子对象不会被删除又会导致了父对象不会被删除; 3. 如果一个对象中引用了外部对象,当自己被删除或者不需要使用此引用对象时,一定要记得把此对象的引用设置为null; 4. 本对象删除不了的原因不一定是自己被引用了,也有可能是...

LY的IT历程 146

FLEX内存优化

FLEX内存释放优化原则: 1. 被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉; 2. 父对象内部的子对象被外部其他对象引用了,会导致此子对象不会被删除,子对象不会被删除又会导致了父对象不会被删除; 3. 如果一个对象中引用了外部对象,当自己被删除或者不需要使用此引用对象时,一定要记得把此对象的引用设置为null; 4. 本对象删除不了的原因不一定是自己被引用了,也有可能...

菜刀 116

Flex 的一些整理

Flex 的一些整理 2010年11月16日    你常用的Flex框架是什么?简述一下它的特点。   Mate   特点:Flex应用是基于事件驱动的,而Mate框架使其变得更简单,Mate允许用户定义是谁正在管理/处理这一事件,以及数据是否需要从服务器端返回,或者其他的什么事件需要被触发,所有这些都使得Flex应用的开发变得更加简单。   Flex是如何与Flash协作的? ...

nytak17v 118

[转]flex内存释放优化原则

flex内存释放优化原则 分类: Flex2008-09-24 20:44 806人阅读 评论(1) 收藏 举报   FLEX内存释放优化原则: 1. 被删除对象在外部的所有引用一定要被删除干净才能被系统当成垃圾回收处理掉; 2. 父对象内部的子对象被外部其他对象引用了,会导致此子对象不会被删除,子对象不会被删除又会导致了父对象不会被删除; 3. 如果一个对象中引用了外部对象,当自己被删除或

rockiecxh的专栏 492

flex bytearray java_ByteArray传递,从Flex到java

展开全部这种加载文件内容到内存里再传过去的方式并不好,因为文件过大时会浪费过多内存甚至32313133353236313431303231363533e58685e5aeb931333332633636溢出。建议用FileReference类实现上传,解析工作全部交给后台处理。如果必须采用这种方式的话,可以这样写:flex:varparam:URLVariables=newURLVaria...

weixin_39772652的博客 108

Flex面试题(二)

<br />36.我现在想在flex里调用JS方法,我要怎么办呢?<br />答:直接在AS中使用ExternalInterface.call()来调用JS方法。如:<br />import flash.external.ExternalInterface;<br />ExternalInterface.call("simpleJSFunction");<br />ExternalInterface.call("simpleJSFunctionWithParameters","myParameter");<

技术交流 1028
上一篇: 修改toolTip 和 Alert样式的方法
下一篇: flex 中有关modules 应用的一些概念。
remote_roamer
博客等级 码龄25年 441粉丝 295原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值