2

运行这个:

setInterval(function() {
    console.log(process.memoryUsage());
}, 1000);

显示内存使用量不断增长:

{ rss: 9076736, heapTotal: 6131200, heapUsed: 2052352 }
... some time later
{ rss: 10960896, heapTotal: 6131200, heapUsed: 2939096 }
... some time later
{ rss: 11177984, heapTotal: 6131200, heapUsed: 3141576 }

为什么会这样?

4

1 回答 1

2

该程序不是的,它正在运行一个计时器,检查内存使用情况,并每秒写入一次控制台。这会导致在堆中创建对象,并且在垃圾收集运行之前,您的堆使用量将不断增加。

如果您放手,您最终应该会heapUsed在每次触发垃圾收集时看到返回。

于 2013-03-01T16:45:31.280 回答