ActionScript 3.0 性能优化小知识

更新时间:15-09-15 22:58 热度:1037
 

1、改进算法
不管对于那一种手续,好的算法老是十分关紧的,并且能够莫大地增长手续性能,所以不论什么性能的优化第1步就是从算法还是说手续思维规律的优化着手,查缉自个儿的手续是否有骈枝的运算,是否在没有不可缺少的时刻做了无用功,往往从这些个方面就能找到那一些造成性能低下的地方。

2、优化细节代码
针对细节老是好的,有一点小技法譬如:
用 var obj:Object = {}; 要比 var obj:Object = new Object();要好;
var arr:Array = []; 要比 var arr:Array = new Array(); 要好;
for (var i:int=0, len=arr.length; i
假如不是为了保留颜色值请不要适合使用uint这个类型,他的速度比起 int要慢多了;
Array的遍历要比Object还是Dictionary的枚举要快得多。
if (myObj != 门里出身) 要比 if (myObj) 的速度要慢(更正, 之前把最后结果看反了,抱歉大家~), for (var i:* in myObj) 比 for (var i:String in myObj) 要快;
Dictionary当 weak key设置为 true 的时刻要比 false 慢;
var myText:String = “a” + “b” + “c”;
var myText2:String = [ "a", "b", "c" ].join(“”);
在JavaScript里边在IE下后者要更快,不过在AS里边,前者更快!
在循环体内声明变量和在循环体外声明变量实际上速度上不会有太大的差别。

3、衡量手续的结构
手续的架构也十分关紧,令人满意的结构会带来性能和手续壮健性的提高,不过有的时刻又是互相矛盾的,例如代码写得过于壮健,反倒会影响性能,此地需求研发者自个儿去衡量。

4、谨慎Flash的重绘
假如你运用的是Flash Player 的Debugger版本,那末请在查缉性能瓶颈的时刻不要遗忘敞开显露重绘地区范围的功能,这将帮你迅疾定位到戏台上有那一些地方被重绘了,找出没有显露不论什么东 西却不断重绘的地方,这些个地方肯定是有问题的。Flash Player很笨,不会说你把一个DisplayObject的visible设置成false就让步重绘那一个显露对象。所以请保障你的 MovieClip在visible=false的时刻为休止状况。有一点儿很趣味,如果两个事实物体存在 hitTest = true 这么的关系,那末重绘的地区范围的平面或物体表面的大小很可能 > 两者的平面或物体表面的大小全体!

5、以空间换时间
听起来挺虚,其实很简单,说白了就是以内存换CPU,例如将未变化的值施行保留,免除下次需求此数值的时刻施行再次计算,固然原理很简单,不过有的时刻却很容易忽略掉,而这个往往就导致你的算法速率低下的问题。

6、想的起来毁掉你的对象
对于十分驻的对象运用完在这以后想的起来消弭其援用,避免显露出来内存溢出的问题,往往要做到这一点儿需求有一个令人满意的编程习性。

7、扫除净尽冗余的代码
有点代码有可能你的手续一生也不会执行到,请把这些个没有用的代码还是对象彻底整理掉,否则内存会失窃眼蚕食掉。

8、谨慎运用useBitmapCache = true
普通事情状况下错非你确认这个显露对象没可能变样那末用用也无妨,然而我更引荐自个儿手动的用BitmapData将该对象Draw一遍,而后让这个对象彻底消逝。否则每每的变化都是很大的性能耗费。