javascript 循环速度 for loop || while loop
2007-12-11 11:51
686 查看
javascript做为客户端的脚本语言,一般来说都是速度是第一.要求速度就要看怎样才会让速度最快.
循环基本上所有语言中都有的,也是最常用的,它的体现,基本能代表速度的体现.
javascript中基本分2种循环:for循环 while循环
for循环分为3种:for ++;for --;for in
while循环分为2种(do-while语句不考虑):while ++;while --
到底哪个快些?
随便写几个测试语句,基本就能比较出最快的循环是哪个.
得出结论:for -- 和 while -- 应该是最快的,两者的速度差不多,经过多次试验,还是对比不出哪个快些;有知道内部详 细实现的请联系我,谢谢啦.
for in 最慢,总以为最简单的最快,试过后才知道.......for in 实在太慢了,令人伤心啊
step 1 : for 循环:
<script type="text/javascript">
/**//**
*test for ++ loop;for -- loop;for in loop
*which one is the fastest one
*
*by sun 20071211
*/
var arrLength = window.prompt("input a number for loop count",100000);
document.write("loop count : "+arrLength+"<br/>");
var tempArr = new Array();
var tempValue;
var arrEndPosition = arrLength - 1;
//timer
var startTime;
var endTime;
//fill
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempArr.push(i);
}
//for ++ loop
startTime = new Date().getTime();
for(var i = 0 ; i < arrLength ; i++)...{
tempValue = tempArr[i];
}
endTime = new Date().getTime();
document.write("for ++ time : "+(endTime-startTime));
document.write("<br/>");
//for -- loop
startTime = new Date().getTime();
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempValue = tempArr[i];
}
endTime = new Date().getTime();
document.write("for -- time : "+(endTime-startTime));
document.write("<br/>");
//for in loop
startTime = new Date().getTime();
for(var i in tempArr)...{
tempValue = tempArr[i];
}
endTime = new Date().getTime();
document.write("for in time : "+(endTime-startTime));
</script>
测试结果 速度: for -- < for ++ < for in(最慢)
step 2 : while 循环:
<script type="text/javascript">
/**//**
*test while ++ loop;while -- loop
*
*by sun 20071211
*/
var arrLength = window.prompt("input a number for loop count",100000);
document.write("loop count : "+arrLength+"<br/>");
var tempArr = new Array();
var tempValue;
var arrEndPosition = arrLength - 1;
//timer
var startTime;
var endTime;
//fill
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempArr.push(i);
}
//while ++ loop
var i = 0;
startTime = new Date().getTime();
while(i < arrLength)...{
tempValue = tempArr[i];
i++;
}
endTime = new Date().getTime();
document.write("while ++ time : "+(endTime-startTime));
document.write("<br/>");
//while -- loop
startTime = new Date().getTime();
var i = arrEndPosition;
while(i >= 0)...{
tempValue = tempArr[i];
i--;
}
endTime = new Date().getTime();
document.write("while -- time : "+(endTime-startTime));
</script>
测试结果 速度: while -- < while ++
step 3 : 最终测试 最快for vs 最快while
<script type="text/javascript">
/**//**
*test for -- loop;while -- loop
*
*by sun 20071211
*/
var arrLength = window.prompt("input a number for loop count",100000);
document.write("loop count : "+arrLength+"<br/>");
var tempArr = new Array();
var tempValue;
var arrEndPosition = arrLength - 1;
//timer
var startTime;
var endTime;
//fill
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempArr.push(i);
}
document.write("<strong>for -- loop first</strong><br/>");
//for -- loop
startTime = new Date().getTime();
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempValue = tempArr[i];
}
endTime = new Date().getTime();
document.write("for -- time : "+(endTime-startTime));
document.write("<br/>");
//while -- loop
startTime = new Date().getTime();
var i = arrEndPosition;
while(i >= 0)...{
tempValue = tempArr[i];
i--;
}
endTime = new Date().getTime();
document.write("while -- time : "+(endTime-startTime));
document.write("<br/>");
document.write("<strong>while -- loop first</strong><br/>");
//while -- loop
startTime = new Date().getTime();
var i = arrEndPosition;
while(i >= 0)...{
tempValue = tempArr[i];
i--;
}
endTime = new Date().getTime();
document.write("while -- time : "+(endTime-startTime));
document.write("<br/>");
//for -- loop
startTime = new Date().getTime();
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempValue = tempArr[i];
}
endTime = new Date().getTime();
document.write("for -- time : "+(endTime-startTime));
document.write("<br/>");
</script>
想自己测试的...可以拿我的脚本去测试
觉得我脚本有什么问题的...email给我...
循环基本上所有语言中都有的,也是最常用的,它的体现,基本能代表速度的体现.
javascript中基本分2种循环:for循环 while循环
for循环分为3种:for ++;for --;for in
while循环分为2种(do-while语句不考虑):while ++;while --
到底哪个快些?
随便写几个测试语句,基本就能比较出最快的循环是哪个.
得出结论:for -- 和 while -- 应该是最快的,两者的速度差不多,经过多次试验,还是对比不出哪个快些;有知道内部详 细实现的请联系我,谢谢啦.
for in 最慢,总以为最简单的最快,试过后才知道.......for in 实在太慢了,令人伤心啊
step 1 : for 循环:
<script type="text/javascript">
/**//**
*test for ++ loop;for -- loop;for in loop
*which one is the fastest one
*
*by sun 20071211
*/
var arrLength = window.prompt("input a number for loop count",100000);
document.write("loop count : "+arrLength+"<br/>");
var tempArr = new Array();
var tempValue;
var arrEndPosition = arrLength - 1;
//timer
var startTime;
var endTime;
//fill
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempArr.push(i);
}
//for ++ loop
startTime = new Date().getTime();
for(var i = 0 ; i < arrLength ; i++)...{
tempValue = tempArr[i];
}
endTime = new Date().getTime();
document.write("for ++ time : "+(endTime-startTime));
document.write("<br/>");
//for -- loop
startTime = new Date().getTime();
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempValue = tempArr[i];
}
endTime = new Date().getTime();
document.write("for -- time : "+(endTime-startTime));
document.write("<br/>");
//for in loop
startTime = new Date().getTime();
for(var i in tempArr)...{
tempValue = tempArr[i];
}
endTime = new Date().getTime();
document.write("for in time : "+(endTime-startTime));
</script>
测试结果 速度: for -- < for ++ < for in(最慢)
step 2 : while 循环:
<script type="text/javascript">
/**//**
*test while ++ loop;while -- loop
*
*by sun 20071211
*/
var arrLength = window.prompt("input a number for loop count",100000);
document.write("loop count : "+arrLength+"<br/>");
var tempArr = new Array();
var tempValue;
var arrEndPosition = arrLength - 1;
//timer
var startTime;
var endTime;
//fill
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempArr.push(i);
}
//while ++ loop
var i = 0;
startTime = new Date().getTime();
while(i < arrLength)...{
tempValue = tempArr[i];
i++;
}
endTime = new Date().getTime();
document.write("while ++ time : "+(endTime-startTime));
document.write("<br/>");
//while -- loop
startTime = new Date().getTime();
var i = arrEndPosition;
while(i >= 0)...{
tempValue = tempArr[i];
i--;
}
endTime = new Date().getTime();
document.write("while -- time : "+(endTime-startTime));
</script>
测试结果 速度: while -- < while ++
step 3 : 最终测试 最快for vs 最快while
<script type="text/javascript">
/**//**
*test for -- loop;while -- loop
*
*by sun 20071211
*/
var arrLength = window.prompt("input a number for loop count",100000);
document.write("loop count : "+arrLength+"<br/>");
var tempArr = new Array();
var tempValue;
var arrEndPosition = arrLength - 1;
//timer
var startTime;
var endTime;
//fill
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempArr.push(i);
}
document.write("<strong>for -- loop first</strong><br/>");
//for -- loop
startTime = new Date().getTime();
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempValue = tempArr[i];
}
endTime = new Date().getTime();
document.write("for -- time : "+(endTime-startTime));
document.write("<br/>");
//while -- loop
startTime = new Date().getTime();
var i = arrEndPosition;
while(i >= 0)...{
tempValue = tempArr[i];
i--;
}
endTime = new Date().getTime();
document.write("while -- time : "+(endTime-startTime));
document.write("<br/>");
document.write("<strong>while -- loop first</strong><br/>");
//while -- loop
startTime = new Date().getTime();
var i = arrEndPosition;
while(i >= 0)...{
tempValue = tempArr[i];
i--;
}
endTime = new Date().getTime();
document.write("while -- time : "+(endTime-startTime));
document.write("<br/>");
//for -- loop
startTime = new Date().getTime();
for(var i = arrEndPosition ; i >= 0 ; i--)...{
tempValue = tempArr[i];
}
endTime = new Date().getTime();
document.write("for -- time : "+(endTime-startTime));
document.write("<br/>");
</script>
想自己测试的...可以拿我的脚本去测试
觉得我脚本有什么问题的...email给我...
相关文章推荐
- 深入了解 JavaScript 中的 for 循环
- Oracle中四种循环(GOTO、For、While、Loop)
- 如何提升JavaScript循环的运行速度
- JavaScript中forEach、for-in、for-of循环的比较
- JavaScript中for..in循环陷阱
- JavaScript中“过于”犀利地for/in循环使用示例
- 5. python for loop循环
- 简单学习JavaScript中的for语句循环结构
- javascript-for-loop-example--reference
- JavaScript的for循环中嵌套一个点击事件的问题解决
- Javascript中的for-in循环和hasOwnProperty
- JavaScript传统for循环实例
- Java中的for循环和JavaScript中的for循环差别初探(02)
- 你不知道的JavaScript--Item16 for 循环和for...in 循环的那点事儿
- 理解 JavaScript 中的 for…of 循环
- JavaScript 中 for 循环的独特之处
- JavaScript for...in 循环的陷阱
- 单线程 JavaScript 的异步机制与经典 for 循环面试题
- javascript之对象访问语句(for...in循环,with语句)
- 深入了解 JavaScript 中的 for 循环