【发布时间】:2011-02-22 13:45:03
【问题描述】:
我知道以前有人问过类似这样的问题,例如: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 会计算多少帧?这个计算是什么?
为了使结果更准确,我猜我需要显示平均值,因为一帧可能会有很大的变化,我应该怎么做?
非常感谢任何提示。
谢谢。
【问题讨论】:
标签: javascript html canvas frame-rate