我基本上有一個對象,我稱之爲兩個函數和三個函數。奇怪的內存行爲
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