Как я могу определить, вызвана ли медленная производительность холста самим чертежом или базовой логикой, которая вычисляет то, что должно быть нарисовано и где?Как узнать, что вызывает медленную производительность холста HTML5?
Вторая часть моего вопроса: как вычислить canvas fps? Вот как я это сделал, мне кажется логичным, но я тоже ошибаюсь. Правильно ли это?
var fps = 0;
setInterval(draw, 1000/30);
setInterval(checkFps, 1000);
function draw() {
//...
fps++;
}
function checkFps() {
$("#fps").html(fps);
fps = 0;
}
Edit: я заменил выше со следующим, согласно комментариям Натана:
var lastTimeStamp = new Date().getTime();
function draw() {
//...
var now = new Date().getTime();
$("#fps").html(Math.floor(1000/(now - lastTimeStamp)));
lastTimeStamp = now;
}
Так как же это? Вы могли бы также рассчитать только разницу в мс с момента последнего обновления, так же можно увидеть и разницу в производительности. Между прочим, я также проводил параллельное сравнение этих двух, и они обычно перемещались в значительной степени вместе (разница не более двух), однако последний имел большие шипы, когда производительность была необычайно низкой.