javascript疑难问题---5、javascript代码执行时间的计算
javascript疑难问题---5、javascript代码执行时间的计算
一、总结
一句话总结:
我们可以用console.time('test')和console.timeEnd('test')来计算一段代码的运行时间,需要计算时间的代码放在这两个函数之间,函数参数'test'表示这个运行时间段的名字
求质数的优化 <script> console.time('test'); for(var i=2;i<=10000;i++){ var is_zhishu=true; for(var j=2;j<=Math.sqrt(i);j++){ if(i%j==0){ is_zhishu=false; break; } } //if(is_zhishu )console.log(i); } console.timeEnd('test');//test: 5.151123046875ms </script>
二、javascript代码执行时间的计算(课程代码)
博客对应课程的视频位置:5、javascript代码执行时间的计算
https://www.fanrenyi.com/video/4/131
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>javascript代码执行时间的计算</title> 6 </head> 7 <body> 8 <!-- 9 求 1-100里面所有的质数 10 遍历的时候 2-100 11 5 2-4 12 18 2-17 13 14 1*18 15 3*9 16 -------平方根 17 9*3 18 18*1 19 20 9 21 1*9 22 3*3 23 9*1 24 25 24 26 2 27 4 28 29 30 计算js代码执行的时间 31 console.time('test'); 32 console.timeEnd('test'); 33 34 --> 35 <script> 36 console.time('test'); 37 for(var i=2;i<=10000;i++){ 38 var is_zhishu=true; 39 for(var j=2;j<i;j++){ 40 if(i%j==0){ 41 is_zhishu=false; 42 } 43 } 44 //if(is_zhishu )console.log(i); 45 } 46 console.timeEnd('test');//test: 243.820068359375ms 47 </script> 48 49 <!--求质数的优化--> 50 <!--<script>--> 51 <!-- console.time('test');--> 52 <!-- for(var i=2;i<=10000;i++){--> 53 <!-- var is_zhishu=true;--> 54 <!-- for(var j=2;j<=Math.sqrt(i);j++){--> 55 <!-- if(i%j==0){--> 56 <!-- is_zhishu=false;--> 57 <!-- break;--> 58 <!-- }--> 59 <!-- }--> 60 <!-- //if(is_zhishu )console.log(i);--> 61 <!-- }--> 62 <!-- console.timeEnd('test');//test: 5.151123046875ms--> 63 <!--</script>--> 64 </body> 65 </html>
三、关于javascript代码执行时间的计算
转自或参考:关于javascript代码执行时间的计算
https://www.cnblogs.com/williamcai/p/4781875.html
以前我们要计算程序,函数的执行之间,通常是在代码执行前后加入时间戳,两者的差值即为执行时间,如下:
var count=1000; var begin=new Date(); for(var i=0;i<count;i++){ document.createElement("div"); } var end=new Date(); var time=end-begin; console.log("time is="+time);
这样确实能够显示代码执行时间,但是计算其他的代码要重复写时间戳,有必要写一个对象封装执行过程,先新建一个Timer,
var Timer={ data:{}, start:function(key){ Timer.data[key]=new Date(); }, stop:function(key){ var time=Timer.data[key]; if(time) Timer.data[key]=new Date()-time; }, getTime:function(){ return Timer.data[key]; } };
// test
Timer.start("div");
for(var i=0;i<count;i++){
document.createElement("div");
}
Timer.stop("div");
console.log("the time is:"+Timer.getTime());
这是我们定义的方法,只能显示执行时间,不过chrome等主流浏览器的console,提供的方法不仅能够显示时间,还能够定位某个函数。
代码格式如下:
如果单纯的计算时间,可以使用console.time(),过程如下:
console.time("XXX");
<code></code>
console.timeEnd("XXX");
如果还需要一些其他的性能指标的话,可以使用console.profile,过程如下:
console.profile("XX");
<code></code>
console.profileEnd("XX");
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
在校每年国奖、每年专业第一,加拿大留学,先后工作于华东师范大学和香港教育大学。
2024-10-30:27岁,宅加太忙,特此在网上找女朋友,坐标上海,非诚勿扰,vx:fan404006308
AI交流资料群:753014672