node.js – 如何防止javascript中的内存泄漏

前端之家收集整理的这篇文章主要介绍了node.js – 如何防止javascript中的内存泄漏前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我陷入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);

猜你在找的Node.js相关文章