高级优化:
1) for循环 和 while循环 用while循环将会得到比for循环更好的效率。然而,从数组中读取数据,用for in循环式最好的选择!
所以我们不推荐使用:
for (var i=0; i < 1000; i++) { //进行某些操作 }而推荐使用 var i=-1 while (++i < 1000) { //进行某些操作 }
2) 从数组中读取数据 我们通过测试发现,for in循环的效率大大高于其他的循环方式。参看:
arr = [] MAX = 5000 //数组赋值 for (i=0; i < MAX; i++) { arr[i] = i } var item = null // For 循环 for (var i=0; i < MAX; i++) { item = arr[i] } // For 循环 for (var i in arr) { item = arr[i] } // While 循环 i = -1 while(++i < MAX) { item = arr[i] }
3) 向数组中写入数据(while , for)可以看到while循环稍占优势。
4) _global(全局)变量同Timeline(时间轴)变量 我们猜测采用全局变量能提高变量调用速度,然而效果并不像预计的那样明显。
5) 单行、多行变量赋值 我们发现单行变量赋值效率大大高于多行。比如:
a = 0 b = 0 c = 0 d = 100 e = 100
效率就不如:
a = b = c = 0 d = e = 100
6) 变量名寻址 这个测试反映了变量名的预寻址是非常重要的,尤其是在循环的时候,一定要先给丁一个指向。这样大大节约了寻址时间。
比如:
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) }
出处:相关论坛
责任编辑:bluehearts
上一页 FLASH程序优化 [2] 下一页 FLASH程序优化 [4]
◎进入论坛RIA设计与应用版块参加讨论
|