对ActionScript优化发现了一些有趣的结果,尽管没有新的技术,却是点小技巧,能提高运行效率
数组 Array indexing
下面是一个简单的过程
private function method1() : void { var tmpVar:int; for(var i:Number=0; i<testArray.length; i++) { tmpVar = testArray[i]; } } i定义为Number ,运行时间是: 53.34 毫秒
for(var i:int=0; i<testArray.length; i++)
i定义为int,效率提高了,35.58 毫秒
var l:int = testArray.length;
for(var i:int=0; i<l; i++)
时间: 21.6毫秒! 类中的常量 var tmpVar:int;
for(var i:Number=0; i<100000; i++) { tmpVar = SomeClass.SOME_CONSTANT; }
需要34.08毫秒,如果把赋值放在循环外了? var tmpVar:int; var myConstant:int = SomeClass.SOME_CONSTANT;
for(var i:Number=0; i<100000; i++) { tmpVar = myConstant; }
只需要15.8毫秒 变量 for(var i:int=0; i<100000; i++) { var v1:Number=10; var v2:Number=10; var v3:Number=10; var v4:Number=10; var v5:Number=10; } 时间 46.52 毫秒 如果把变量定义在一起,就像这样: for(var i:int=0; i<100000; i++) { var v1:Number=10, v2:Number=10, v3:Number=10, v4:Number=10, v5:Number=10; } 平均时间19.74毫秒 位操作 位运算也可以提高效率, 例如乘除 for(var i:int=0; i<100000; i++) { var val1:int = 4 * 2; var val2:int = 4 * 4; var val3:int = 4 / 2; var val4:int = 4 / 4; } 平均时间: 49.12毫秒,使用位运算符下降到35.56毫秒 for(var i:int=0; i<100000; i++) { var val1:int = 4 << 1; var val2:int = 4 << 2; var val3:int = 4 >> 1; var val4:int = 4 >> 2; }
|