flash代码性能优化.ppt_第1页
flash代码性能优化.ppt_第2页
flash代码性能优化.ppt_第3页
flash代码性能优化.ppt_第4页
flash代码性能优化.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Flash代码性能优化 节省内存 减少CPU使用 加快呈现速度 优化网络交互 性能测试 两点 A 感知性能B 实际性能 感知性能 动画是否流畅 文本输入时是否同步 或是有延迟单击事个把是否及时触发程序运行时 CPU声音是否变大笔记本耗电量 实际性能 实际帧率 方法运算时间 调用次数 CPU占用 内存占用等 避免过早优化 某些性能优化需要以难以理解或灵活性差的方式编写代码 会造成维护困难 通常时实现完后定位到部份代码是否性能较差 针对性优化 影响 矢量动画 视频 图形滤镜效果 图层混合模式等等 可通过将程序执行拆分成几个部分 运行时在各部份执行间更新屏幕 达到感知优化 帧循环 事件和enterframe 呈现 0ms 执行frame1代码100ms 等待呈现周期1000ms 开始呈现1050ms 呈现完成1051ms 执行frame2代码1151ms 等待呈现周期2000ms 开始呈现2050ms 呈现完成2051ms 执行frame3代码 注 对于包括updateAfterEvent属性的事件 可强制立即执行呈现 而不需要等到呈现阶段 但是 频繁使用可能会导致性能下降 重用对象 如在循环外先声明再赋值 而非重复创建vari int for i 0 i 100 i varrect Rectangle newRectangle i i i i doUseRect rect varrect Rectangle newRectangle vari int for i 0 i 100 i rect x rect y rect width rect height i doUseRect rect 对象池 对象实例化成本很高 使用对象池可减少对象实例化的需求 还可减少垃圾回收器运行的机会 提高运行速度 varobjPool Array functiongetObj Object if objPool length 0 returnobjPool shift functionreleaseObj obj Object void objPool push obj 垃圾回收 对象删除引用后 不会从立即从内存中回收 系统认为可能内存太低时才会执行回收 回收时间不可预知 删除对象时不会触发垃圾回收 内存分配时会触发 垃圾回收会占用大量CPU并影响性能 导致运行速度明显下降 另外 尽可能将引用置null 使回收器容易找到回收对象 事件与回调 事件优点 灵活解藕事件缺点 可能要在应用程序的生存期内创建许多对象 使用事件模型与传统回调相比 速度更慢且占用更多内存 必须要创建event对象并进行 内存分配 会降低性能 在捕获和冒泡阶段 如果显示列表很复杂 性能会很低 位图与矢量 矢量 节省内存 大量矢量会增加CPU资源消耗 位图 占较大量内存 运行时绘制像素比呈现矢量需要处理的资源少 FP10 1以后 创建同一个图像的多个对象时 使用相同的bitmapdata实例 即不会重复增加内存 使用滤镜会多产生两份资源以生成滤镜效果 FP10 1以后 30秒没有修改 或放到屏幕外 将释放未过滤的位图的内存 修改滤镜属性会重新创建未过滤的位图 需要大量CPU处理 文本 只读文本最好使用新的文本引擎flash text engine 输入文本使用textField对象 同样支持编译 输入等功能 textField使用的as代码最少 休眠机制 10 1休眠机制 音频或视频时 帧率降为8 否则降为4 运行时进入或退出睡眠模式 不会触发事件 页面上多个swf时 滚到屏蔽外的swf默认不会被启动 直到其可见 可设置hasPriority值启动 但最小化时 此值无效 冻结对象 即使显示对象不再位于显示列表 并等待回收 仍然占用大量CPU 即在removeChild的时候删除没有必要的侦听 10 1播放到空帧时会自动冻结 loader引用unloadAndStop方法自动冻结加载对象并强制运行垃圾回收器 鼠标交互 禁用多余的鼠标事件 当屏幕上显示许多交互对象时 特别是当他们重叠时 交互会占用大量CPU资源 可设置mouseEnabled和mouseChildren属性为false 计时器与enterframe事件 对于执行时间长的代码 非动画 优先选择计时器 而不是enterframe帧率不影响视频 因为视频未嵌入时间轴中 将应用程序中timer和enterframe处理函数量降到最少 组件库 flex组件库功能全面 方便易用 但是代码量大 文件大小偏大 运行性能较低 不太合适用于arpg或多人同屏的应用 适合用于策略游戏 建议选用一些更轻量的第三方库 GPU加速 FP10 1后 支持GPU加速 可以优化滤镜 位图 视频和文本 但是呈现可能会有所差异 如pixelbender效果 开启方式wmode gpu目前主要还是软件呈现 因为驱动程序的差别比较大 呈现有差异 线程 as3executionmodel是单线程的 当UI的绘制计算量非常大时 或者位图处理运算量非常大时 或者视频渲染计算量非常大时 逻辑执行将会不流畅 FP10以后 runtimeexecution与图形渲染在同一线程 网络 socket监听在另一线程 两个线程都是封闭的 不能访问 注 FP11或12中可能加入多线程支持 其他 使用public代替getter setter 执行相当于调用方法 alpha属性会影响渲染性能 包含动画的影片帧率一般设置在二十到三十之间 不含动画的十二帧就足够了 等等 java c 与as java c 中 对象包含了成员变量或属性中的数据 以及可通过方法访问的行为 AS中 对象只是属性的集合 属性是

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论