• 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");

     
  • 相关阅读:
    主机与虚拟机通信:以主机VS2010连接虚拟机MySql为例
    Json与类对象转换
    VS附加到进程调试的方法及应用场景
    地图API使用文档-以腾讯地图为例
    JS使用ActiveXObject读取数据库代码示例(只支持IE)
    css文件内引用外部资源文件的相对路径
    ::after,::before使用
    高德地图API应用
    LogNet4学习笔记
    MvcPager分页控件的使用
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12388756.html
Copyright © 2020-2023  润新知