以下是这几年开发过程中总结的,在此分享,希望看到此文的同学能有所获。
1.用乘法来代替除法,比如10 * 0.5要比10 / 2快。但差别并不是很大,只有在需要大量计算情况下,差别才比较明显。
2.用位运算代替除2或乘2。一个数右移一位相当于该数除以2,左移一位相当于该数乘以2,但是移位运算速度比乘除运算速度要快很多。
3.用unit()或int()代替取整运算Math.floor()或Math.ceil()。unit()或int()运算速度比Math.floor()或Math.ceil()快。
4.用乘-1来代替Math.abs()方法要比Math.abs()方法处理速度快。
5.用for...in...代替for或者while循环,效率要高。
6.尽量少用多重嵌套for循环,嵌套for循环越多,效率越低。
7.循环数组时先将数组的长度赋给一变量,再利用该变量作为条件去循环,要比直接利用数组的长度作为循环条件效率要高。
8.尽量多使用局部变量,局部变量够用时不要使用全局变量。
9.尽量使用单例模式。
10.在用到矢量图的时候,要尽可能简化它们的形状,去除多余的端点,这样将大大降低播放器用于呈现矢量图所要进行的计算量。
11.用到位图时尽量用png格式,渲染效率相对高些。
12.不用的监听事件及时移除,不用的引用及时赋空。
13.做动画时将动画每一帧的数据以位图的形式保存起来,再通过Timer去切换,这样产生动画。
14.延迟加载某些资源。不要一下子去加载所有的资源,有些资源等用到的时候再去加载。
15.如果某个资源太大,可以将该资源拆分为几个较为小的资源,然后分别去加载。
16.如果存在大量的对象需要去重复创建并删除,使用对象池,用的时候去对象池里去,删除后放回对象池,减少了来回创建删除所需要的开销。