我在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