我在HTML5的Canvas + JavaScript中製作遊戲。我的CPU用於該選項卡每秒持續增長几個百分點,直到達到50%(全部爲一個內核)。我正在成功地從對象數組中刪除我的對象,但對象本身似乎仍然存在。我在幾個地方嘗試過「刪除obj」和「obj = null」,但沒有運氣。CPU使用量持續增長;有沒有辦法在JavaScript中刪除我的未使用的對象?
任何想法?
var falling_blocks = setInterval(add_falling_block, 1000);
...
function add_falling_block(){
b = new Object();
b.x = (randFromTo(0,sq) * scale) - boff;
b.y = -scale + boff;
b.color = "#f00";
b.moving = true;
b.number = f.length;
f.push(b);
}
function draw_falling_blocks(){
var db = new Array()
for(i = 0; i < f.length; i++){
var ba = f[i];
if(ba.y < (bottom + scale)){
ba.y += scale;
draw_block(ba.x,ba.y,"#f00");
}
else if(ba.y = (bottom + scale)){
db.push(i);
console.log(f.length);
}
}
for(i = 0; i < db.length; i++){
f.splice(db[i],1);
}
}
你能創建一個jsFiddle嗎? – vol7ron 2011-06-17 01:39:17
CPU使用率!=內存使用情況。如果您的選項卡分配的內存不斷增加,那麼您確實遇到未被刪除的對象的問題。但是,掛鉤的CPU表明您的問題在別處。 – josh3736 2011-06-17 01:42:09
這裏是小提琴:http://jsfiddle.net/wxEjb/ – Aaron 2011-06-17 01:48:51