简单函数调用中nodejs中的内存泄漏

时间:2017-02-10 06:31:10

标签: node.js memory-leaks

编辑问题

我试图理解为什么在简单的函数调用中存在内存泄漏。为什么节点在本地范围结束时不释放内存。

提前致谢

function somefunction()
{
    var n = 20000;
    var x  ={};
    for(var i=0; i<n; i++){
        x['some'+i] = {"abc" : ("abc@yxy.com"+i)};
    }

}

// Memory Leak
var init = process.memoryUsage();
somefunction();
var end = process.memoryUsage();
console.log("memory consumed 2nd Call : "+((end.rss-init.rss)/1024)+" KB");

2 个答案:

答案 0 :(得分:1)

在编辑问题之前的先前答案以纠正代码错误:

结果无效,因为此代码不会调用该函数:

(function(){
    somefunction();
});

声明了匿名函数但未调用。所以它在资源方面没有太大用处。

您需要调用该函数:

(function(){
    somefunction();
}());

答案 1 :(得分:0)

@Mohit,两种策略都采用相同的内存消耗。分别运行每个代码并自行检查。

编辑: 等待gc。当gc调用时,内存应该是空闲的。尝试显式调用gc然后检查它。