讨论二:看来要尽量使用局部变量。 另外改造一下for循环也能显著提高效率
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();
试验了一下,多于半数的情况下while的稍微快那么一点点点点
回帖二:主要是判断上的缘故 i<0 i<max i<obj.length 这3个判断由上到下越来越慢; --------------------------- 另外理论上,(我没在flash试验过), z++ , ++z , z=z+1 这三种操作, 前两种基本上没有速度的差别,而最后一种最慢.
原贴地址:http://www.blueidea.com/bbs/NewsDetail.asp?id=1057820 仍在讨论中,敬请关注.
出处:蓝色理想
责任编辑:handmade
上一页 讨论一 下一页 讨论三
◎进入论坛Flash专栏版块参加讨论
|