[Flash] Performance Tips for CPU Usage

  • Performance Tips for CPU Usage
  • 提供一些基本的Actionscript 3.0 最佳化的寫法。

    做整數運算使用 int 會比 Number 快許多,int 又比 uint還要快一點。

    不良的寫法如下:

    var n:Number;
    n++;

    for(var i:Number=0; i<100;i++){}

    較好的寫法如下:

    var n:int;
    n++;

    for(var i:int=0; i<100;i++){}

    宣告變數時給予明確的型態會比宣告成Object快許多。

    不良的寫法如下:

    var i;
    var j:Object;
    var k:*;

    較好的寫法如下:

    var i:int;
    var j:Boolean;
    var k:Number;

    型態轉型使用 Type(variable) 會比使用 as 或者其他轉換函式快許多

    不良的寫法如下:

    var n:int = 100;
    var m:String = n.toString();

    var o:Object;
    o as int;

    較好的寫法如下:

    var n:int = 100;
    var m:String = String(n)();

    var o:Object;
    int(o);

    直接讀取變數值會比透過物件來取值快許多

    不良的寫法如下:

    var obj:Object = {"n":1000} ;
    for(var i:int=0; i<obj.n;i++){}

    較好的寫法如下:

    var obj:Object = {"n":1000} ;
    var n:int = obj.n;
    for(var i:int=0; i<n;i++){}

    陣列複製使用concat()會比loop複製快

    不良的寫法如下:

    var arr1:Array = new Array(100000);
    var arr2:Array = new Array(100000);
    for(var i:int = 0; i<arr1.length ; i++){
    arr1[i] = arr2[i];
    }

    較好的寫法如下:

    var arr1:Array = new Array(100000);
    var arr2:Array = new Array(100000);
    arr2 = arr1.concat();

    基本數學運算使用自行客制化的會比使用Math class快

    不良的寫法如下:

    Math.floor(0.9);
    Math.abs(-1);
    Math.abs(n,2);

    較好的寫法如下:

    int(0.9);
    n>0?n:-n;
    n*n;

    想要了解更多關於Actionscript的最佳化可以參考下面的網頁

    http://www.rozengain.com/blog/2007/05/01/some-actionscript-30-optimizations/

No comments:

Post a Comment

Orange - data analysis tool

Installation pip install orange3 Run orange python -m Orange.canvas