如何防止在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);