我知道以前有人问过这样的问题,例如:Check FPS in JS? - 在某种程度上确实有效,我能够找出每个循环需要多长时间才能完成。
我正在寻找的是更具可读性和可控性的东西。我希望能够为 FPS 计数器设置刷新率,使其变慢,以便人类可读或与应用程序运行一样快,这样我就可以在某种速度计上使用它。
无论如何,这是我现在拥有的代码:
var lastLoop = new Date().getTime();
function updateStage()
{
clearCanvas();
updateStageObjects();
drawStageObjects();
var thisLoop = new Date().getTime();
var fps = (thisLoop - lastLoop);
$('#details').html(fps);
lastLoop = thisLoop;
iteration = setTimeout(updateStage, 1);
}
我将 setTimeout 函数设置为 1 毫秒的速度是否正确?我在想这只会让它尽可能快地循环。
我是否应该每 100 帧左右计数一次,找出运行 100 帧需要多少毫秒,然后计算一下如果毫秒为 1000 会完成多少帧?这个计算会是什么?
为了使结果更准确,我猜我需要显示平均值,因为一帧可能会有很大的变化,我应该怎么做?
非常感谢任何提示。
谢谢。