2010年1月4日 星期一

程式效能提升疑問?

Flash player :10.0.0
SDK :3.4
開發介面:Flex Builder 3

測試碼:

startTime = getTimer();
for(var i:int=0; i<100000; i++)
{
     var a:int = 4*4;
     var b:int = 4/2;
}
endTime = getTimer();
trace( "test = " + (endTime - startTime) + "m/s " );

startTime = getTimer();
for(var i:int=0; i<100000; i++)
{
  var a:int = 4<<2;
  var b:int = 4>>2;
}
endTime = getTimer();
trace( "test = " + (endTime - startTime) + "m/s " );
 
輸出結果:

31 m/s
31 m/s

似乎在AS3中使用位元運算似乎沒有比較快。
 
但是如果是
//方式a
for(var i:int=0; i<100000; i++)
{
    var v1:Number=10,
          v2:Number=10,
          v3:Number=10,
          v4:Number=10,
         }
//方式b
for(var i:int=0; i<100000; i++)
{
   var v1:Number = 10; var v2:Number = 10; var v3:Number = 10; var v4:Number = 10;
}
 
這個跑出來後結果是方式b效能好很多。

沒有留言:

張貼留言