我陷入js问题的内存泄漏.
使用Javascript:
var index = 0; function leak() { console.log(index); index++; setTimeout(leak,0); } leak();
这是我的测试代码,我使用instruments.app来检测它的内存使用情况,
而且记忆力正在快速上升.
我怀疑似乎没有变量占据记忆.
为什么?
任何想法都是欣赏的.
解决方法
您的代码创建了一组闭包.这可以防止释放内存.在您的示例中,内存将在所有超时完成后释放.
这可以看出(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);