美文网首页javascript
JavaScript查看FPS

JavaScript查看FPS

作者: nico1988 | 来源:发表于2019-12-17 16:30 被阅读0次
image.png
同发掘金

chrome的Rendering面板中的FPS meter可以实时查看当前页面的FPS(frames per second)和简单的GPU信息
但是:它只在某一帧发生变化时才会计数,如果啥都不干,js主线程是空闲的,帧率会很低-按我的理解也就是不太准,我们可以自己实现查看当前页面帧率的函数。


image.png

JavaScript查看FPS的几种方式, 主要都是利用了requestAnimationFrame,使浏览器在下次重绘之前执行回调

1 使用requestAnimationFrame结合performance

const times = []; // 存储当前的时间数组
let fps;
function refreshLoop() {
  window.requestAnimationFrame(() => {
    const now = performance.now(); // 使用performance.now()能获取更高的精度
    while (times.length > 0 && times[0] <= now - 1000) {
      times.shift(); // 去掉1秒外的时间
    }
    times.push(now);
    fps = times.length;
    refreshLoop();
    console.log(fps);
  });
}

refreshLoop();

2 使用requestAnimationFrame

var before,now,fps;
before=Date.now();
fps=0;
requestAnimationFrame(
    function loop(){
        now=Date.now();
        fps=Math.round(1000/(now-before));
        before=now;
        requestAnimationFrame(loop);
        console.log("fps",fps)
    }
 );

3 使用requestAnimationFrame2 配置进度条

html

<progress id="kpFps" value="0" min="0" max="100" style="vertical-align:middle"></progress>

javascript

let be = Date.now(),fps=0;
requestAnimationFrame(
    function loop(){
        let now = Date.now()
        fps = Math.round(1000 / (now - be))
        be = now
        requestAnimationFrame(loop)
        if (fps < 35){
          kFps.style.color = "red"
          kFps.textContent = fps 
        } if (fps >= 35 && fps <= 41) {
            kFps.style.color = "deepskyblue"
            kFps.textContent = fps + " FPS"
          } else {
            kFps.style.color = "black"
            kFps.textContent = fps + " FPS"
        }
        kpFps.value = fps
    }
 )
image.png

怎么用?

  • 打开你想要测试的web,把上面的代码copy到控制台执行
  • 或者放到你的web中的js中
image.png image.png

参考

1、check-fps-in-js
2、Fast and Simple JavaScript FPS Counter
3、requestAnimationFrame
4、Performance

相关文章

  • JavaScript查看FPS

    chrome的Rendering面板中的FPS meter可以实时查看当前页面的FPS(frames per se...

  • 查看Android APP 帧数FPS的方法

    查看Android APP 帧数FPS的方法FPS(每秒传输帧数(Frames Per Second) 1.电脑安...

  • iOS 查看屏幕FPS

    CADisplayLink NSProxy forwardingTargetForSelector: 一.CADi...

  • 37. 查看帧率FPS

    帧率是视频设备可以产生图像(或帧)的速率。 电影和游戏最熟悉它,但现在已广泛用作网站和 Web 应用程序的性能指标...

  • Android性能优化典范

    【布局篇】 1、画面流畅需要60fps,60fps需要操作在16ms内完成 2、查看界面绘制情况,减少布局层级,避...

  • JS基本_2018-07-09

    javascript的组成 javascript的语法 javascript的数据类型: 查看数据类型 javas...

  • FizzBuzzWhizz

    本篇仅讨论此题目,若需查看与 javascript 相关信息,请查看本人另一篇文章 javascript 基础入门...

  • iOS开发中查看实时的FPS值

    OttoFPSButton 前言 在项目开发中,有的时候需要查看实时的FPS值,以此作为性能的参考。 优势 实时显...

  • Javascript编程训练

    1. 实验准备 熟悉JavaScript语法; 查看JavaScript教程:https://www.liaoxu...

  • 查看iOS屏幕帧数MGFPSStatus

    在状态栏显示FPS状态,FPS是一秒钟渲染多少帧 Frame Per Second = FPS,FPS值为55~6...

网友评论

    本文标题:JavaScript查看FPS

    本文链接:https://www.haomeiwen.com/subject/dagsnctx.html