Flash性能——游戏性能优化
Flash游戏的性能因素
游戏性能因素之⼀:帧率
1. 游戏性能中最关键的数据,可是在很长时间内被忽略。
2. 帧率不稳定会使游戏不流畅甚⾄出现卡顿现象。
3. 影响帧率的因素:
1. 渲染时间
2. 每帧代码执⾏时间
游戏性能因素之⼆:CPU
1. ⼀直以来备受关注的数据,对帧率有直接影响。
2. 影响CPU的因素:
1. ⼤量元件
2. 各种复杂的计算、处理
3. 动画等⼀切能引发重绘的内容
游戏性能因素之三:内存
1. ⾼内存容易引发频繁GC,导致游戏出现卡顿现象。
2. 内存过⾼的因素:
1. 代码问题导致实例未释放
2. 资源管理不当,特别在使⽤了位图后
Flash游戏优化基本原则
1. 使⽤性能监控⼯具出最影响性能的部份并优化
尽量构建与线上相同的测试环境
2. 在优化后⼀定要再次使⽤监控⼯具检查优化结果
3. ⼆⼋原则,软件运⾏的典型情况:20%的程序占⽤80%的执⾏时间,优化重点是这20%
如何优化Flash游戏
Flash游戏优化的主要⼯作是对内存、CPU、帧率不断改进的过程,其中帧率最为关键。
下⾯将分别对三个性能因素进⾏分析
优化Flash游戏性能—内存
1. 内存在性能上的影响不是很明显,⽐较好控制但也容易出问题,保持良好的编程习惯是控制内存增长的有效⽅法。
2. 低内存有助于CPU优化,常见做法是空间换时间
降低内存的做法:
1. 对象⽤完后⼀定要销毁
1. 删除事件
2. 清除引⽤
2. 使⽤⼦域加载临时资源
1. 使⽤⼦域的前提是:保证所有不使⽤的对象被销毁,否则只会适得其反导致内存更快增加
2. 不要将不相关或⽣命周期不同的资源放⼊同⼀⼦域,任何⼀个对象不能销毁,都会导致整个⼦域不能被释放
3. 实际上Flash已经提供最佳⽅案:下载时默认将每个⽂件加载到⼀个独⽴的⼦域,项⽬中因为嫌编码⿇烦被强制加载到主域
CPU使⽤情况对游戏性能有直接的影响,我们⼀直在努⼒降低CPU的消耗,正因如此也进⼊了某些误区。
下⾯将对影响CPU的两个主要因素做优化:
CPU优化—⼤量元件
1. 舞台上元件数越多,CPU的消耗越⾼
1. 不可见的元件同样存在消耗
2. 静⽌的内容也会因为其他元件的重绘产⽣消耗
2. 重绘区域
1. 叠加对象的重绘区域能够合成⼀个更⼤区域,这将导致更多不需要处理的内容发⽣重绘
2. Flash最多同时⽀持3个重绘区域,超出时会被合并产⽣更⼤的重绘区域
CPU优化—动画
flash swf播放器
1. 明确美术制做规范并严格要求,尽量避免美术元件中以下内容的出现
1. 滤镜、透明、显⽰样式、混合模式
2. 过多的⼦元件、嵌套动画
3. 对元件进⾏缩放,⽐较常见的⼩图⼤画
4. 补间动画
5. 遮罩
2. 使⽤cacheAsBitmap
1. 从策略上使⽤“缓存为位图”,将复杂图形、⽂件本“缓存为位图”能有效的降低CPU消耗,提⾼游戏性能
2. 不要对动画使⽤,当元件内容、⼤⼩发⽣改变时Flash需要重新⽣成内部位图,反⽽增加CPU消耗
3. cacheAsBitmap不会导致⽣成的swf⽂件增加,在性能上却能带来良好的提升,能够满⾜⼤部份性能要求,虽然⽐直接使⽤位图
资源要差⼀点。
3. 使⽤位图资源
1. Flash的位图渲染⾮常快,能⼤幅降低CPU消耗,提升游戏性能
2. 尽量避免使⽤MovieClip,采⽤位图替代
1. 将动画转换为⼀组位图,通过不停的更换bitmapData实现动画播放
3. 问题:⽂件、内存增加
1. ⽂件增加是不可避免的,在允许的情况下采⽤更低品质能有效减⼩⽂件。
2. 内存增加并⾮绝对,⽽且很多内容只是临时使⽤会很快被释放,短时间内的内存增加不会有明显的性能影响。
3. 某些情况下美术提供的⽮量图资源⽣成的⽂件和位图资源的相差不⼤,可以优先采⽤位图
4. CPU优化—复杂计算
因为动画占⽤的⽐重太⼤,算法优化对Flash的CPU影响很不明显,但采⽤执⾏效率⾼的处理⽅式也很重要
5. 优化的误区:低CPU就是⾼性能
常见表现:
CPU不⾼但帧率低或不稳定
原因
1、不合理的资源管理
某些操作执⾏时间过长:构造⼤型元件、耗时的计算过程
2、渲染时间过长也会出现CPU低但帧率达不到要求
帧率的变化对游戏体验有着直接的影响
以每秒25帧为例,平均第帧40ms,如果超出该时间会导致帧率不稳定或下降,进⽽引起游戏不流畅甚⾄画⾯卡顿。
1. 如何控制帧时间
1. 算法优化,尽量减少执⾏时间
2. 时间⽚
1. 某些处理确实很费时也很耗CPU,可以将这个处理分散成更⼩的过程,每帧执⾏⼀部份
2. 控制每帧的处理量,使执⾏时间在40ms以内,剩下的在下⼀帧继续处理
3. 问题:代码变得复杂
2. 除了代码执⾏时间还要考虑渲染时间,当舞台上⼤量显⽰元素时,渲染也很费时
1. 优化渲染⽅式:使⽤位图
2. 新的内容
1.
1.
1. 位块传输(Blitting)
2. 不被看好的Stage3D,但可以⽤来做2D图形加速
其他:
发布选项
1. ⽂件的发布参数对游戏性能也有直接的影响
将播放器版本设置在10以上(使⽤FlashCS3制做的⽂件默认为9) ,Flash10相对9有很多改进的地⽅:
1.
1. 位图重⽤
2. MovieClip跳帧机制
2. 关闭调试、省略trace

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。