优化Flash性能(二)

实现优化算法


在这个单元,我会开始做一些内存管理的指导,下面单元标题的顺序是按照首字母排序的。然后为了这个目的,我会提供有关CPU/GPU管理信息的子标题来探讨。


也许我们会觉得提供两个单元的技术是合理的。但是,如果你通读完这篇文章,知道了用内存管理影响CPU/GPU的方法,那么列出的内存管理的建议,可以和CPU/GPU单元里列出的方法一起使用,这样效果会更好。


在为你提供特定的最佳实现方法之前,我认为技术问题同样重要,知道的多了你就学的轻松,反之就会很累。我同样会列第二个清单,它会按技术获益的优先级次序从高到低排列。


记住这些清单是主观的。它的顺序是依据个人开发经验和能力来定的,还有测试情形和测试环境。


应用的优化技术从易到难排列

1.不要使用滤镜

2.尽可能使用倒序for循环,避免使用do循环和while循环

3.明确的停止使用Timer,以便垃圾回收

4.使用弱引用时间侦听器,当不用的时候移除

5.尽可能在任何时候严格定义变量类型

6.当不需要鼠标交互的时候明确的禁用鼠标交互

7.尽可能在任何时候使用回调函数来取代dispatchEvent(继承的)类

8.不需要声音时停止Sound类,以便垃圾回收Sound(继承的)类和SoundChannel(继承的)类

9.尽量让每一个所需的元素使用最基本的DisplayObject

10.Air应用(移动设备)总是使用cacheAsBitmap 和cacheAsBitmapMatrix (前一个是位图缓存,后一个是位图矩阵缓存?我没用过)

11.尽可能在任何时候重新使用Object

12.Event.ENTER_FRAME循环:使用不同的侦听器和不同的侦听函数应用在尽可能少的DisplayObjects 上

13.用PoolObject(对象池)取代创建和垃圾回收Object

14.使用局部位图传输(块传输)

15.使用阶段的块传输

16.使用Stage3D


优化技术后好处由大到小排列

1.使用阶段的块传输(如果有足够的系统内存)

2.使用Stage3D

3.使用局部位图传输(块传输)

4.在移动设备上使用cacheAsBitmap 和cacheAsBitmapMatrix

5.当鼠标交互不需要的时候明确的禁用鼠标交互

6.不要使用滤镜

7.需要的时候使用最基本的DisplayObject

8.尽量在任何时候重新利用对象

9.Event.ENTER_FRAME循环:使用不同的侦听器和侦听函数,他们最好应用在尽可能少的DisplayObjects 上

10.尽可能使用倒序for循环,避免使用do循环和while循环

11.用PoolObject(对象池)取代创建和垃圾回收Object

12.尽可能在任何时候严格定义变量类型

13.使用弱引用时间侦听器,当不用的时候移除

14.尽可能在任何时候使用回调函数来取代dispatchEvent(继承的)类

15.明确的停止使用Timer,以便垃圾回收

16.不需要声音时停止Sound类,以便垃圾回收Sound(继承的)类和SoundChannel(继承的)类

记住这些优先级排序,然后前进到下个单元,学习如何更新你的Flash工程来更有效率的管理内存。


原文出自:http://bbs.9ria.com/thread-157034-1-1.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值