zoukankan      html  css  js  c++  java
  • 关于javascript代码执行时间的计算

    最近看了《高性能Javascript》一书,发现了几个计算代码执行时间的方法,感觉还挺有用的。

    以前我们要计算程序,函数的执行之间,通常是在代码执行前后加入时间戳,两者的差值即为执行时间,如下:

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

  • 相关阅读:
    P1073 最优贸易
    window.btoa()方法;使字符编码成base64的形式
    centOs7 忘记root密码
    window.addEventListener()/window.postMessage(”text“, '*')
    $(function(){})理解
    跨域资源共享/option 请求产生原因
    Angular: Can't bind to 'ngModel' since it isn't a known property of 'input'问题解决
    TypeScript
    盒子模型
    理解事件捕获等
  • 原文地址:https://www.cnblogs.com/williamcai/p/4781875.html
Copyright © 2011-2022 走看看