對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;
}原文http://www.rozengain.com/blog/2007/05/01/some-actionscript-30-optimizations/