2
我有这个简单的HTTP服务器V8的NodeJS没有做适当的垃圾收集
var http = require('http');
var server = http.createServer(function(request, response) {
var data = [];
for (var i=0; i < 1000000; i++) {
data.push({});
}
response.end('Done');
});
server.listen(3000);
当我启动进程使用的内存8MB左右的服务器。 当我向服务器发出请求时,内存使用量会上升到100MB以上,并且会保持这种状态。然后,我持有F5几秒钟来发送一些请求,并且内存使用量在某些点上超过400MB。当处理完所有请求后,服务器仍然使用超过100MB。
当我提出另一个请求时,内存有时会高于或接近200MB或保持大致相同。我让服务器运行一段时间,内存不会被释放。
我试过把date = null
和结果是一样的。然后,我尝试运行带有--expose-gc
标志的服务器,并在将值设为空值后将global.gc()
运行,结果更好,但内存仍然保持在50MB以上。