jsp测试函数的运行速度方法
通常我们需要对函数进行优化,一般的做法是开始的时候获得时间,结束的时候再获得一次时间,两次时间相减就能到到花费的时间。而函数运行速度之快,基本上都是毫秒级的。
下面给出的函数就是就此准备的。
//时间转为时间戳(毫秒)
functiontime2stamp(){
vard=newDate();
returnDate.parse(d)+d.getMilliseconds();
}
用法:
vart1=time2stamp();
//比较各游览器的DOM运行速度。
vardivs=document.getElementByTagName("div");
vart2=time2stamp();
alert("耗时:"+(t2-t1)+"毫秒");
新的方法:
vartime1=newDate
//比较各游览器的DOM运行速度。
vardivs=document.getElementByTagName("div");
alert("耗时:"+(newDate-time1)+"毫秒");
测试各种循环的效率,for...in这样慢的循环就不测了!
<!doctypehtml>
<htmldir="ltr"lang="zh-CN">
<head>
<metacharset="utf-8"/>
<title>类</title>
<scripttype="text/javascript"charset="utf-8">
window.onload=function(){
for(vari=0,elm;i<4000;i++){
elm=document.createElement("div");
elm.innerHTML="第一重div<div>第二重div<div>第三重div</div></div>";
document.body.appendChild(elm);
}
document.getElementById("start-test").onclick=startTest;
varuuid=0;
functionstartTest(){
vardivs=document.getElementsByTagName("div");
vartime1=newDate();
vari=-1,n=divs.length;while(++i<n){
divs[i].uuid=uuid++;
}
document.getElementById("time-1").innerHTML=newDate()-time1;
vartime2=newDate();
vari=divs.length;while(--i>=0){
divs[i].uuid=uuid++;
}
document.getElementById("time-2").innerHTML=newDate()-time2;
vartime3=newDate();
for(vari=0,n=divs.length;i<n;i++){
divs[i].uuid=uuid++;
}
document.getElementById("time-3").innerHTML=newDate()-time3;
vartime4=newDate();
for(varn=divs.length-1;n>=0;n--){
divs[n].uuid=uuid++;
}
document.getElementById("time-4").innerHTML=newDate()-time4;
vartime5=newDate();
for(varn=divs.length-1;n--;){
divs[n].uuid=uuid++;
}
document.getElementById("time-5").innerHTML=newDate()-time5;
vartime6=newDate();
varn=divs.length-1;do{
divs[n].uuid=uuid++;
}while(n--);
document.getElementById("time-6").innerHTML=newDate()-time6;
vartime7=newDate();
for(vari=0,el;el=divs[i++];){
el.uuid=uuid++;
};
document.getElementById("time-7").innerHTML=newDate()-time7;
}
}
</script>
</head>
<body>
<style>
h2{
margin:0;
padding:10px;
font-weight:500;
font-size:13px;
background:#8080C0;
color:#fff;
}
p{
margin:0;
text-indent:2em;
border-bottom:2pxsolid#a9ea00;
background:#F2F1D7;
}
span.red{
color:red;
}
</style>
<h1>JavaScriptloopspeedtest</h1>
<ul>
<li>遍历页面上12000个DIV</li>
</ul>
<inputid="start-test"type="button"value="Starttest">
<h2>循环1:vari=-1,n=divs.length;while(++i<n){}<spanclass="red">顺序</span></h2>
<pid="time-1"></p>
<h2>循环2:varn=divs.length;while(--n>=0){}<spanclass="red">倒序</span></h2>
<pid="time-2"></p>
<h2>循环3:for(vari=0,n=divs.length;i<n;i++)<spanclass="red">顺序</span></h2>
<pid="time-3"></p>
<h2>循环4:for(varn=divs.length-1;n>=0;n--){}<spanclass="red">倒序</span></h2>
<pid="time-4"></p>
<h2>循环5:for(varn=divs.length-1;n--;){}<spanclass="red">倒序</span></h2>
<pid="time-5"></p>
<h2>循环6:varn=divs.length-1;do{}while(n--)<spanclass="red">倒序</span></h2>
<pid="time-6"></p>
<h2>循环7:for(vari=0,el;el=divs[i++];){}<spanclass="red">顺序</span></h2>
<pid="time-7"></p>
</body>
</html>
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!