我基本上有一个对象,我称之为两个函数,以及三个函数。
function func1()
M.mfunc1( 'updateSomething' );
// do some stuff
M.mfunc2();
}
function func2 () {
M.mfunc1 ( 'hitSomething' );
// does something but line is stable
M.mfunc2();
}
function func3 () {
M.mfunc1 ( 'doesSoemthing' );
//does nothing, but causes memory to grow
M.mfunc2();
}
M.mfunc1 = function ( name ) {
// code is all commented out
}
M.mfunc2 = function () {
// code is all commented out
}
使用setTimeout在主循环上调用 func1
n。当在时间轴上使用Chromes的开发工具观看内存时,内存会在func3
的调用时突然增长,但如果我注释掉M
个来电,它会保持稳定。我试图评论M.mfunc1
和M.mfunc2
中的所有内容,只是将其称为孤独,它会导致内存使用量增长。
现在可以有人向我解释一下吗?
更新:我的代码更像是它的真实内容。
更新2 :由于我提供的示例代码似乎不是问题,因此这里是指向所有代码的链接:http://test.startailpro.co.uk/breaking/
这些功能包括update
,updateDirection
,hitBlock
,doesBall_hitBlock
,MEMORY.deep
和MEMORY.rise
。
答案 0 :(得分:0)
最后我做的是重写整个代码。我实际上设法在不使用对象的情况下编写整个事物,除了在加载时。我仍然不知道原始代码有什么问题,但我现在能够更好地理解内存使用的增长。
我建议您小心选择哪种框架。我在jQuery中发现事件会导致内存增长。由于您正在为事件生成接收对象和对象,因此这不是问题。虽然,我假设事件对象是本机的并且已经过优化,因此内存增长不是问题。再次注意框架。