如何判斷畫布的緩慢性能是否由繪圖本身或計算應繪製的內容邏輯以及在哪裏引起的?如何判斷導致HTML5 Canvas性能下降的原因?
我的問題的第二部分是:如何計算畫布的FPS?以下是我的做法,對我來說似乎合乎邏輯,但我也可能是絕對錯誤的。這是做到這一點的正確方法嗎?
var fps = 0;
setInterval(draw, 1000/30);
setInterval(checkFps, 1000);
function draw() {
//...
fps++;
}
function checkFps() {
$("#fps").html(fps);
fps = 0;
}
編輯: 我更換了上面下面,根據Nathan的評論:
var lastTimeStamp = new Date().getTime();
function draw() {
//...
var now = new Date().getTime();
$("#fps").html(Math.floor(1000/(now - lastTimeStamp)));
lastTimeStamp = now;
}
那麼這個怎麼樣?您也可以只計算自上次更新以來的差異,也可以看到性能差異。順便說一下,我也對這兩者進行了並排比較,他們通常幾乎一起移動(最多相差2),然而,當性能非常低時,後者的峯值更大。