我基本上有一个对象,我称之为两个函数和三个函数。奇怪的内存行为
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
}
func1
使用setTimeout在主循环上调用n。当在时间线上使用Chromes的开发工具观看内存时,内存在func3
的调用中突然增长,但如果我注释掉M
调用,它会保持稳定。我采取了对M.mfunc1
和M.mfunc2
中的所有内容进行评论,只是将它称为一个单独的内容,它会导致内存使用量增加。
现在有人可以向我解释吗?
更新:我让我的代码更像它真正的东西。
更新2:因为我给的例子代码似乎并不成为问题,这里有一个链接到所有代码:http://test.startailpro.co.uk/breaking/
的功能update
,updateDirection
,hitBlock
,doesBall_hitBlock
,MEMORY.deep
和MEMORY.rise
。
那么从func1调用func3不会导致问题?只有从func2? – ThatMatthew
我相当怀疑我们可以帮助很多,而没有看到真正的代码表现出这个问题。 – jfriend00
@ThatMatthew yeap,根本不会导致问题 – NebulaFox