討論二:看來要盡量使用局部變量。 另外改造一下for循環(huán)也能顯著提高效率
function loop() { var MAX_VALUE = 39999 var st=getTimer() var z; for (var i=MAX_VALUE;--i>0;) { z ++; } trace(getTimer()-st); }
回帖一:果然...........+比-慢呢 (var i=0;++i<MAX_VALUE;)還是不如(var i=MAX_VALUE;--i>0;)的快 function loop() { var i=MAX_VALUE = 39999 var st=getTimer() var z=0; var i; while (--i>0) { z ++; } trace(getTimer()-st); }
function loop2() { var i=MAX_VALUE = 39999 var st=getTimer() var z=0; var i; for (;--i>0;) { z ++; } trace(getTimer()-st); }
loop(); loop2();
試驗了一下,多于半數(shù)的情況下while的稍微快那么一點點點點
回帖二:主要是判斷上的緣故 i<0 i<max i<obj.length 這3個判斷由上到下越來越慢; --------------------------- 另外理論上,(我沒在flash試驗過), z++ , ++z , z=z+1 這三種操作, 前兩種基本上沒有速度的差別,而最后一種最慢.
原貼地址:http://www.95time.cn/bbs/NewsDetail.asp?id=1057820 仍在討論中,敬請關注.
出處:藍色理想
責任編輯:handmade
上一頁 討論一 下一頁 討論三
◎進入論壇Flash專欄版塊參加討論
|