以下是經(jīng)過測試過的 1. 數(shù)組Array: 聲明數(shù)組:使用var arr = []; 而不是var arr = new Array(); 復(fù)制數(shù)組:最快arr1 = arr2;其次arr1=arr2.slice();再次arr1=arr2.concat(); 數(shù)組賦值:arr[0]=0;比arr.push(0);效率高 2. Math類,發(fā)現(xiàn)Math類的一些方法在效率上較低,如果不是很復(fù)雜的計算,建議自己寫方法,比如: var num:int=3>2?3:2;比var num:int=Math.max(3,2);效率高 3. .不會改變的屬性,使用const 來定義常量: public const STR: String = “name”; 4. .不會再被繼承的類,要使用final前綴: public final class MyClass 5. 類型轉(zhuǎn)換,使用as而不要用類名轉(zhuǎn)換: 比如var s:Sprite=new Sprite(); 應(yīng)該是var mc:MovieClip=s as MvoieClip; 而不是var mc:MovieClip=MvoieClip(s); 6. .聲明變量的時候要聲名類型: var str:String="abc"而不要var str="abc" 函數(shù)也一樣要聲明返回值類型 function doSomthing():void{}而不是function doSomthing(){} 7. 數(shù)值計算: 如果是整數(shù)加減法運算應(yīng)該使用int,乘除法使用Number 特別是應(yīng)該用int做迭代,而不是Number (var i: int = 0; i < n; i++) 不要使用 for (var i: Number = 0; i < n; i++) uint在各方面計算效率都比int,Number要低 8. 用乘法來代替除法: 使用5000*0.01 不應(yīng)該使用: 5000/100 9. 應(yīng)該在循環(huán)外定義表達(dá)式的值,而不是在循環(huán)體內(nèi),如果在循環(huán)體內(nèi),就會每循環(huán)一次計算一次,比如: 應(yīng)該是: var arr:Array=[1,2,3,4,5]; var num:int=arr.lenght; for(var i:int=0;i<num;i++){} 而不是: var arr:Array=[1,2,3,4,5]; for(var i:int=0;i<arr.length;i++){} 10. 變量名和函數(shù)名的長度不影響速度。 11. 對象屬性訪問 var obj:Object={key:"value"} obj.key要比obj["key"]快數(shù)倍,如果在flash中舞臺上繪制出的影片剪輯,內(nèi)部的又有子影片剪輯getChildAt的訪問速度是最快的. 動態(tài)類訪問已聲明的屬性比未聲明的屬性快3-4倍,而訪問未聲明但賦值的過屬性比沒賦值快一倍. 普通屬性比get方法要快5-6倍,get方法比普通方法訪問速度將近快一倍. 22. 邏輯計算-比較 1) ByteArray最快,如果時間為16單位 2) int,uint其次,20單位 3) Number,40單位 4) String,150單位 5) Object,450單位
|