Node.JS内存释放

时间:2013-06-11 15:38:00

标签: node.js v8

我写了一个简单的节点服务器:

var http = require('http');

var server = http.createServer();

var i = 0;
var onRequest = function(req, res){
    res.write('test ' + (++i));
    res.end();
    console.log(i);
};

server.on('request', onRequest);

server.listen(8080);

当我启动服务器时,节点正在使用 5.8 MB 内存,但在提供100,000个请求后,它的内存使用量为 21.5 MB

是否会在某个时间点(何时)取消分配此内存?

我确信脚本中没有内存泄漏,这太简单了。

我正在测试Windows 8,localhost。

1 个答案:

答案 0 :(得分:3)

在最新版本的Node中,这个内存应该在某个时候由V8解除分配,这可能会逐步完成。

在以前版本的Node / V8中,取消分配更具侵略性,并且没有逐步完成。后者对表现不太好。

听一听http://nodeup.com/fortyfive

您可以像这样检查V8节点的版本:

node -e "console.log(process.versions.v8)"

这篇文章将为您提供大量指针,以检查Node.js中的内存泄漏 https://hacks.mozilla.org/2012/11/tracking-down-memory-leaks-in-node-js-a-node-js-holiday-season/

您也可以按照此处的详细说明强制GC:http://simonmcmanus.wordpress.com/2013/01/03/forcing-garbage-collection-with-node-js-and-v8/