JavaScript:获取帧率FrameUtil.js

代码

  1. 设置一个帧率类
    /*
      FPS 每秒传输帧数(Frames Per Second)
      FPS = 一秒走过的帧数
    */
    
    class FrameUtil {
        constructor(){
            // 1. 当前的帧序号 —— 总帧数
            this.currentFrame = 0;
            // 2. FPS
            this.realFps = 0;
            // 3. 起始帧 —— 记录每一秒的开始帧和开始时间
            this.sFrame = 0;
            this.sTime = new Date();
        }
    
        /**
         * 更新
         */
        update(){
            // 1. 当前的帧序号++
            this.currentFrame++;
            // 2. 判断sTime是否走过了1s
            let t = new Date();
            // 3. 判断
            if(t - this.sTime >= 1000){
                // 3.1 计算FPS
                this.realFps = this.currentFrame - this.sFrame;
                // 3.2 更新起始帧和起始时间
                this.sFrame = this.currentFrame;
                this.sTime = t;
            }
        }
    }
    

使用

  1. 引入FrameUtil.js
  2. 实例化帧类
    let frameUtil= new FrameUtil();
    
  3. 获取初始FPS
    let FPS = frameUtil.realFps || 60;
    
  4. 开启定时器,时间为一帧走过的时间
    在这里时间之所以是一帧走过的时间,是因为在帧类update()方法中,是currentFrame++
    也就是说,走过一帧,更新一次
    timer = setInterval(()=>{
       
    }, 1000 / this.fps);
    
  5. 在定时器内部,不断执行update方法,即可不断更新帧对象FPS,并获取FPS和FNO
    timer = setInterval(()=>{
       frameUtil.update();
       let currentFPS = frameUtil.realFps;
       let currentFNO = frameUtil.currentFrame;
    }, 1000 / this.fps);
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KaiSarH

如果觉得文章不错,可以支持下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值