CocosCreator 源码​ perf-counter.js详解

const Counter = require('./counter');
/* 独立的计时器类 */
let PerfCounter = cc.Class({
  name: 'cc.PerfCounter',
  extends: Counter,/* 继承Counter */

  ctor(id, opts, now) {
    // DISABLE
    // this._idstart = `${id}_start`;
    // this._idend = `${id}_end`;
    /* 构造函数,传递key,value是一个object,now 是当前时间*/
    this._time = now;
  },

  start(now) {
    this._time = now;
    /* // DISABLE:长时间运行会导致性能下降 */
    // DISABLE: long time running will cause performance drop down
    // window.performance.mark(this._idstart);
  },

  end(now) {
    /* 调用end的时候,当前距离浏览器打开时间时间,减去上一次的时间,获取差值 */
    this._value = now - this._time;
    // DISABLE:长时间运行会导致性能下降
    // DISABLE: long time running will cause performance drop down
    // window.performance.mark(this._idend);
    // window.performance.measure(this._id, this._idstart, this._idend);

    this._average(this._value);//增加样本
  },

  /* 全局搜索,未发现调用 */
  tick() {
    this.end();
    this.start();
  },

  frame(now) {
    /* 当前浏览器打开到现在的时间差,赋值 */
    let t = now;
    /* 当前时间和上次时间的差值 */
    let e = t - this._time;
    this._total++;
    let avg = this._opts.average || 1000;

    if (e > avg) {
      this._value = this._total * 1000 / e;
      this._total = 0;
      this._time = t;
      this._average(this._value);//增加样本
    }
  }
});
/* 导出PerfCounter */
module.exports = PerfCounter;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值