高級(jí)優(yōu)化:
1) for循環(huán) 和 while循環(huán) 用while循環(huán)將會(huì)得到比for循環(huán)更好的效率。然而,從數(shù)組中讀取數(shù)據(jù),用for in循環(huán)式最好的選擇!
所以我們不推薦使用:
for (var i=0; i < 1000; i++) { //進(jìn)行某些操作 }而推薦使用 var i=-1 while (++i < 1000) { //進(jìn)行某些操作 }
2) 從數(shù)組中讀取數(shù)據(jù) 我們通過測(cè)試發(fā)現(xiàn),for in循環(huán)的效率大大高于其他的循環(huán)方式。參看:
arr = [] MAX = 5000 //數(shù)組賦值 for (i=0; i < MAX; i++) { arr[i] = i } var item = null // For 循環(huán) for (var i=0; i < MAX; i++) { item = arr[i] } // For 循環(huán) for (var i in arr) { item = arr[i] } // While 循環(huán) i = -1 while(++i < MAX) { item = arr[i] }
3) 向數(shù)組中寫入數(shù)據(jù)(while , for)可以看到while循環(huán)稍占優(yōu)勢(shì)。
4) _global(全局)變量同Timeline(時(shí)間軸)變量 我們猜測(cè)采用全局變量能提高變量調(diào)用速度,然而效果并不像預(yù)計(jì)的那樣明顯。
5) 單行、多行變量賦值 我們發(fā)現(xiàn)單行變量賦值效率大大高于多行。比如:
a = 0 b = 0 c = 0 d = 100 e = 100
效率就不如:
a = b = c = 0 d = e = 100
6) 變量名尋址 這個(gè)測(cè)試反映了變量名的預(yù)尋址是非常重要的,尤其是在循環(huán)的時(shí)候,一定要先給丁一個(gè)指向。這樣大大節(jié)約了尋址時(shí)間。
比如:
var num = null t = getTimer() for (var i=0; i < MAX; i++) { num = Math.floor(MAX) - Math.ceil(MAX) } t1.text = "Always lookup: " + (getTimer() - t)
就不如:
t = getTimer() var floor = Math.floor var ceil = Math.ceil for (var i=0; i < MAX; i++) { num = floor(MAX) - ceil(MAX) }
出處:相關(guān)論壇
責(zé)任編輯:bluehearts
上一頁(yè) FLASH程序優(yōu)化 [2] 下一頁(yè) FLASH程序優(yōu)化 [4]
◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論
|