egret性能优化总结
## 来自官方的优化建议
详见:http://edn.egret.com/cn/article/index/id/287
(1) 少使用Alpha混合。
(2) 显式停止计时器,让它们准备好进行垃圾回收。
(3)使用事件侦听器并在不需要时删除这些侦听器。
(4) 在不需要触摸交互性时显式禁用触摸交互性。
(5) 合理使用dispatchEvents 函数。
(6) 尽可能重用对象,建立对象池,而不创建对象并对其执行垃圾回收。
(7)多次调用类属性时,避免直接使用this.att,建立局部变量赋值。
(8)Event.ENTER_FRAME数量控制。
(9)减少不必要的引用。
(10)减少显示对象的旋转缩放。
(11)使用SpriteSheet合并的图片尺寸要优于单张图片的总尺寸,尤其是带透明通道的。
(12)在Http请求中,加载单个文件速度要优于加载多个文件
##个人总结
1) 滑动列表尽量使用数据绑定的方式(详见 eui.Scroller + eui.List 的使用),这样的做法减少Draw ,最多为选项个数+1
2)显示移除不需要的面板,不用的尽量removeChild 而不是设置visiable
3) 显式停止计时器,不要每次都进行 egret.getTimer(),应做为全局数据
4)显式 删除对象的所有引用确保被垃圾回收器回收。
5) 尽量不要在使用方法内创建函数,一个函数内不要嵌套另一个函数的定义。
6) 尽量使用let 代替 var 避免闭包导致的BUG
7) 将this赋值给另一个临时变量self,let self = this
8) 不要在声明的时候初始化对象,需要赋值基本类型。可选择使用前初始化。
9) 初始化数组 =[] 比new 效率高 , = {} 比new 效率高
10) exml文件注意通过可视化编辑会产生小数,去掉小数
11)尽可能复用对象,或建立对象池,创建对象时,将对象创建在循环外部并在循环内反复重用。这是许多面向对象编程常用的方法。
12)禁用不必要显示对象的触摸交互,默认touchEnabled =true ,需要手动设置为false,在禁用时注意touchChildren = false 才能彻底禁止touch
13) 静态的UI 使用建议使用cacheAsBitmap减少重绘次数,动态的不要使用该方法
14) 少用mask,特别是Rectangle 每回都要去计算消耗性能较大
15)尽量将配置文件合并到一个大文件里,减少下载次数。在Http请求中,加载单个文件速度要优于加载多个文件。配置文件去掉格式化,利用在线Json格式化工具(如bejson,sojson)处理Json数据。Json数据可以去掉一些不必要的小数和冗长命名
16)TextField减少对于描边(stroke)的使用,用图片代替,因为描边是需要先通过计算边界渲染
17)配置文件尽量使用key :value的方式,直接通过key取值减少查询
18)数据查询多的,使用key:value结构
19) ScrollerBar 的数据,如果单个更改,尽量通过updataItem() 去更改,避免重新绑定数据
转自 http://blog.csdn.net/wuhaishengxxx/article/details/70495693
最新文章
- Angularjs+node+Mysql实现地图上特定点的定位以及附加信息展示
- Java实现归并排序
- 双系统下删除Linux系统方法和Windows无法启动问题的解决方法
- Jmeter常用函数之__CSVRead使用
- 贪心法 codevs 1052 地鼠游戏
- loj 1032 数位dp
- paip.陕北方言 广东方言的不同单字 1千高频字
- css3动画实例
- 终端I/O之获得和设置终端属性
- POJ2533 Longest ordered subsequence
- C#获取文件夹下指定格式的所有文件
- Windows 10 系统Microsoft Edge的使用手册
- c#项目减少源代码大小
- Android--UI之TextView
- 深入理解JAVA虚拟机(内存模型+GC算法+JVM调优)
- 分享几个在线生成网址二维码的API接口
- python使用细节
- 软工实践第二次作业-sudoku
- 从源码分析StringUtils包
- ld,连接器