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

  • 相关阅读:
    NOIP 2017 游记?
    bzoj4596 [Shoi2016]黑暗前的幻想乡
    bzoj2467 [中山市选2010]生成树
    bzoj3534 [Sdoi2014]重建
    bzoj1016 [JSOI2008]最小生成树计数
    bzoj4044 [Cerc2014] Virus synthesis
    bzoj4530 [Bjoi2014]大融合
    bzoj2594 [Wc2006]水管局长数据加强版
    bzoj 2342 [Shoi2011]双倍回文
    bzoj [HNOI2008]Cards
  • 原文地址:https://www.cnblogs.com/williamcai/p/4781875.html
Copyright © 2011-2022 走看看