Aus der offiziellen Dokumentation ( Quelle ):
process.memoryUsage ()
Gibt ein Objekt zurück, das die Speichernutzung des Knotenprozesses beschreibt, gemessen in Bytes.
var util = require('util'); console.log(util.inspect(process.memoryUsage()));
Dies erzeugt:
{ rss: 4935680, heapTotal: 1826816, heapUsed: 650472 }
heapTotal und heapUsed beziehen sich auf die Speichernutzung von V8.
Genau das, was rss , heapTotal und heapUsed stehen?
Es mag wie eine triviale Frage erscheinen, aber ich habe gesucht und konnte bisher keine klare Antwort finden.
RSS ist die residente Satzgröße , der Teil des Arbeitsspeichers des Prozesses, der im RAM gespeichert ist (im Gegensatz zum Auslagerungsbereich oder dem Teil, der im Dateisystem gespeichert ist).
Der Heap ist der Teil des Speichers, aus dem neu zugewiesene Objekte stammen (denken Sie
malloc
an C odernew
JavaScript).Sie können mehr über den Haufen bei Wikipedia lesen .
quelle
heapTotal
undheapUsed
?heapTotal
ist der gesamte von der zugrunde liegenden V8-Engine zugewiesene Heap-Speicherplatz für dynamische Zuweisungen.heapUsed
ist der Speicher, der in diesem gesamten Raum verwendet wird. Beide werden von V8 verwaltet und können bei Bedarf vergrößert / verkleinert werden.Die Node.js-Dokumentation beschreibt es wie folgt:
Alle genannten Werte werden in Bytes ausgedrückt. Wenn Sie sie also nur drucken möchten, möchten Sie sie wahrscheinlich auf MB skalieren:
Das gibt Ihnen eine Ausgabe wie:
quelle
Machen wir das mit einem Beispiel
Das folgende Beispiel zeigt Ihnen, wie die Zunahme der Speichernutzung das
rss
und tatsächlich erhöhtheapTotal
Ausführen Das Obige gibt Ihnen ungefähr Folgendes:
Dies zeigt Ihnen deutlich, wie durch die Verwendung einer Variablen und die kontinuierliche Erhöhung des dafür benötigten Speicherplatzes die heapTotal und entsprechend die Resident Set Size (
rss
) erhöht werden.quelle