pig*_*_Yu 6 memory garbage-collection node.js
我陷入js问题的内存泄漏.
使用Javascript:
var index = 0;
function leak() {
console.log(index);
index++;
setTimeout(leak, 0);
}
leak();
Run Code Online (Sandbox Code Playgroud)
这是我的测试代码,我使用instruments.app来检测它的内存使用情况,内存速度非常快.
我怀疑似乎没有变量占据记忆.
为什么?
任何想法都是欣赏的.
Vad*_*hev 10
您的代码创建了一组闭包.这可以防止释放内存.在您的示例中,内存将在所有超时完成后释放.
这可以看出(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);
Run Code Online (Sandbox Code Playgroud)