衣带渐宽终不悔,为伊消得人憔悴。

69 阅读1分钟

threeJS帧率

  • 一次获取
let fpsStop: any = null
const estimateScreenRefreshRate = () => {
  const start = performance.now();
  let lastFrameTime = start;
  let frameCount = 0;

  const measureFrameRate = () => {
    const now = performance.now();
    fpsStop = requestAnimationFrame(measureFrameRate);

    if (now - lastFrameTime >= 1000) {
      console.log(`Estimated frame rate: ${frameCount} fps`);
      frameCount = 0;
      lastFrameTime = now;
      cancelAnimationFrame(fpsStop)
    } else {
      frameCount++;
    }

  }

  measureFrameRate()
}

console.log(estimateScreenRefreshRate());
  • 每秒一次即时帧率

const estimateScreenRefreshRate = () => {
  const start = performance.now();
  let lastFrameTime = start;
  let frameCount = 0;


  const measureFrameRate = () => {
    const now = performance.now();
    
    if (now - lastFrameTime >= 1000) {
      console.log(`Estimated frame rate: ${frameCount} fps`);
      frameCount = 0;
      lastFrameTime = now;
    } else {
      frameCount++;
    }
    requestAnimationFrame(measureFrameRate);
  }

 requestAnimationFrame(measureFrameRate);
}

console.log(estimateScreenRefreshRate());