NodeJS:调用global.gc()不会将内存减少到最小吗? [英] NodeJS: calling global.gc() doesn't reduce memory to minimum?

查看:1636
本文介绍了NodeJS:调用global.gc()不会将内存减少到最小吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

为了调查内存泄漏,我设置了一个在每个POST /gc

To investigate memory leaks, I have setup a route that triggers global.gc() at every POST /gc

app.post('/gc', function(req, res){
     global.gc();
});

但是,我注意到,如果我向该请求发送垃圾邮件,则每次都会减少内存使用量.调用global.gc() 一次是否足以将内存减少到 minimum ?

However, I've noticed that if I spam this request, it reduces the memory usage more and more each time. Shouldn't calling global.gc() once is enough to reduce the memory to minimum?

如果是,为什么连续调用多次每次通话都减少内存?

If so, why does calling multiple times consecutively reduces memory at every call?

(我正在使用Node.js v0.12)

(I'm using Node.js v0.12)

推荐答案

在非常高的水平上,V8将GC分为两部分.寻找要收集的垃圾,并实际上收集垃圾.调用gc()仅做第二部分,收集已经发现的垃圾.

At a very high level, V8 splits up GC into two parts. Looking for garbage to collect, and actually collecting the garbage. Calling gc() only does the second part, collecting already-found garbage.

这篇关于NodeJS:调用global.gc()不会将内存减少到最小吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆