Я знаю, что раньше задавали несколько подобных вопросов, например: Проверить FPS в 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? Каким будет этот расчет?
Чтобы сделать результат более точным, я предполагаю, что мне нужно отображать средние значения, поскольку один кадр может значительно отличаться, как мне это сделать?
Любые советы приветствуются.
Спасибо.