浏览器计算FPS

转自:https://www.ccc5.cc/2534.html

FPS的概念随手一搜有很多,简单来讲,就是一秒钟内渲染了多少次画面。

在浏览器里面,浏览器渲染一次页面是有回调的requestAnimationFrame

那么计算FPS就是计算: 1÷两次渲染的时差,这事好办呀:

function calcFps(){
    let lastTime = Date.now();
    (function loop(){
        const now = Date.now()
        const fps = Math.round(1 / ((now - lastTime) / 1000))
        console.log('fps:', fps)
        lastTime = now
        requestAnimationFrame(loop)
    })()
}

现在的实现是每次渲染都计算下FPS是多少,变化太快,我们加入更新频率:

function calcFps(debounce = 1000){
    let lastTime = Date.now();
    let count = 0; // 记录decounce周期内渲染次数
    (function loop(){
        count++
        const now = Date.now()
        if( now - lastTime > debounce){
            const fps = Math.round(count / ((now - lastTime) / 1000))
            lastTime = now
            count = 0
            console.log('fps:', fps)
        }
        requestAnimationFrame(loop)
    })()
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值