我知道之前有一些类似的问题,比如这个: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,则应完成多少帧?这个计算应该怎么做?
为了使结果更准确,我想我需要显示平均值,因为一个帧可能会有很大变化,该如何实现呢?
非常感谢任何提示。
谢谢。
NaN
。(请参见此处我的答案,以获取有关过滤器强度影响的更多详细信息;在1000时,需要700帧才能从初始fps 0移动到稳态fps的一半。)您在哪个操作系统/浏览器/版本上看到NaN? - Phrogz