Node.JS内存释放
我写了一个简单的节点服务器:
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 。
这个内存会在某个时候释放吗?
我相信脚本中没有内存泄漏,这太简单了。
我正在testingWindows 8,本地主机。
在最新版本的Node中,这个内存应该在某些时候由V8释放,这可能是增量式的。
在之前的Node / V8版本中,取消分配更加激进,并没有增量式地完成。 后者对于performance并不太好。
听听这个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季/
你也可以在这里详细的强制GC: http : //simonmcmanus.wordpress.com/2013/01/03/forcing-garbage-collection-with-node-js-and-v8/