我试着抛砖引玉,谈谈有关Flash Player的内存管理。
要驾驭某样东西你必须得去了解它,才能够按照正确的方向办事。我们先说说FP是如何分配内存,完成垃圾回收和优化渲染显示的。然后会涉及到事件监听和字典,延迟验证模式,最后还有IDE自带的Profiler.
FP虚拟机向操作系统申请内存,然后予以分配。内存的分配是这样的:内存块是以4096字节为单位在堆上进行分配的;每个属性长度为4字节+为属性类型分配的内存;内存块可能永远不会被回收。内存回收是这样的:它伴随着内存分配执行,在空闲的时候不会执行内存回收。垃圾回收回收下面重点讲。
FP的内存管理。FP从操作系统获得大块内存,然后内存块会被分割成由固定大小的小块内存组成的内存池,因此FP分配的多数内存都是相对比较小块的。内存池用光以后,FP会向操作系统申请新内存块。
FP的垃圾回收。垃圾回收的方法:标准的标记清除垃圾回收器;增量扫描清除闲置对象;倘若一个对象没有活动的引用指向它,那该对象则是可以被垃圾回收的。前两者是FP自动做的,我们得着重看看第三种。当我们将对象的引用设置为null的时候,过一段时间以后,FP探测到该对象闲置不用而且没有引用就会将其自动回收。在这里要说说弱引用。弱引用监听器的使用方法如下:addEventListener('click',btnClickHandler,false,0,true);使用弱字典引用(new Dictionary(true))。在使用强引用事件侦听器的时候,必须显式地移除事件侦听器。垃圾回收仅会在内存分配过程中被触发。当内存池快被完爆的时候,FP在向操作系统要"钱"前会"扫荡"一下,尝试执行垃圾回收。打个不好的比喻:有个好吃懒做的人家里给了他一百万,他拼命花,大手大脚借钱,当剩下的钱快吃不上饭的时候就会在向家里人要钱前去向他借钱的朋友要钱。
用好强类型。优先使用Vector而不是Array,在最新版当中,其性能得到了优化,并且允许在数据结构当中使用强类型标记它的内容(这个有点类似使用元标签规定数组内容类型);在代码当中使用强类型,例如:var n:Number或者var b:Boolean, var foo:Button;优先使用int而不是Number;当可能的时候消除子表达式,比如for循环当中,定义好变量值最大值,var count:int=array.length;避免出现i模型上面的--代码执行,渲染。失效和验证模型就是建立在此基础之上的来高效完成工作,同步修改的。
识别内存泄漏和性能瓶颈。使用Profiler检查方法调用的开销,识别内存泄漏和过大的内存开销。无论你的应用多复杂还是简单,应该常用它来检查性能瓶颈。
分享到:
相关推荐
Flash,Flex和AIR应用开发内存监测及优化技巧 内容摘要 Flash Player 是如何分配内存的? Flash Player 是如何完成垃圾回收的? Flash Player 是如何优化渲染显示的? 你该如何处理以下问题: 事件监听...
资源名称:Flash,Flex和AIR应用开发内存监测及优化技巧资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
《Flex企业应用开发实战》共分为4大部分,涵盖企业级应用开发的整个生命周期。首先介绍了Flex/Flash的工作机理和利用Flex开发企业级应用必须掌握的基础知识和核心元素;接着剖析了Flex与Java的通信机制,以及Flex...
Flex 内存 技巧 整理
FLEX内存释放优化原则,内存泄露解决方法,内存泄露情况
ArcGIS API for Flex应用开发
Flex 应用内存泄露的分析与诊断 Flex 应用内存泄露的分析与诊断
代源码的企业应用FLEX开发实战,包括电子书及源码,分为10个章节
FLEX企业应用开发实战_part2
《Flex企业应用开发实战》全书共分为4大部分,涵盖企业级应用开发的整个生命周期。首先介绍了Flex/Flash的工作机理和利用Flex开发企业级应用必须掌握的基础知识和核心元素;接着剖析了Flex与Java的通信机制,以及...
FLEX企业应用开发实战PDF
《Flex企业应用开发实战》由业界4位拥有近10年企业级应用开发经验的资深专家撰写,权威性毋庸置疑。全书共分为4大部分,涵盖企业级应用开发的整个生命周期。首先介绍了Flex/Flash的工作机理和利用Flex开发企业级应用...
ArcGIS Flex 应用开发.pdf
Flex+ASP.NET+Web应用开发实战详解-源代码
这是一本入门级的Flex电子书,适合入门的朋友看!
第1章 Flex企业应用开发入门 1.1 B/S企业应用开发者的噩梦 1.2 噩梦结束,新时代来临 1.3 Flex概述 1.4 Flash Player的工作模型 1.4.1 Flash Player的帧执行模型 1.4.2 Flash Player渲染模型 ...
FLEX企业应用开发实战 PDF书和配书源代码
Flex企业应用开发实战源代码 本书由业界4位拥有近10年企业级应用开发经验的资深专家撰写,权威性毋庸置疑。 全书共分为4大部分,涵盖企业级应用开发的整个生命周期。首先介绍了Flex/Flash的工作机理和利用Flex开发...
Flex企业应用开发实战Flex企业应用开发实战Flex企业应用开发实战Flex企业应用开发实战
用于防止FLEX编程过程中出现内存无法释放,导致黑屏模糊等现象!