如何防止在javascript中的内存泄漏
我陷入内存泄漏在JS问题。
使用Javascript:
var index = 0; function leak() { console.log(index); index++; setTimeout(leak, 0); } leak();
这里是我的testing代码,我使用instruments.app来检测它的内存使用情况,并且内存的上升速度非常快。
我怀疑似乎没有变数占据记忆。
为什么?
任何想法都很感激。
您的代码创build了一组closures。 这可以防止释放内存。 在你的例子中,内存将在完成所有超时后释放。
这可以看出(100秒后):
var index = 0; var timeout; function leak() { index++; timeout = setTimeout(leak, 0); } leak(); setTimeout(function() { clearTimeout(timeout); }, 100000); setInterval(function() { console.log(process.memoryUsage()); }, 2000);