Ich habe diesen einfachen HTTP-ServerNodeJS V8 tut richtigen Müll nicht sammeln
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);
Wenn ich den Server der Prozess verbraucht rund 8 MB Speicher starten. Wenn ich eine Anfrage an den Server stelle, steigt die Speicherauslastung auf über 100 MB und es bleibt einfach so. Dann halte ich F5 für ein paar Sekunden, um einige Anfragen zu spammen, und die Speicherauslastung wächst an manchen Punkten über 400 MB. Wenn alle Anfragen bearbeitet werden, verwendet der Server immer noch über 100 MB.
Wenn ich eine weitere Anfrage mache, geht der Speicher manchmal über oder nahe 200MB oder bleibt ungefähr gleich. Ich lasse den Server eine Weile laufen und der Speicher wird nicht freigegeben.
Ich versuchte setzen und das Ergebnis war das gleiche. Dann habe ich versucht, den Server mit dem --expose-gc
Flag laufen zu lassen und global.gc()
setzen, nachdem ich den Wert null und die Ergebnisse sind besser, aber der Speicher bleibt immer noch über 50MB.