Beim Start scheint meine node.js-App etwa 200 MB Speicher zu verwenden. Wenn ich es für eine Weile in Ruhe lasse, schrumpft es auf ungefähr 9 MB.
Ist es möglich aus der App heraus:
- Überprüfen Sie, wie viel Speicher die App verwendet?
- Fordern Sie den Garbage Collector zum Ausführen an?
Der Grund, den ich frage, ist, dass ich eine Reihe von Dateien von der Festplatte lade, die vorübergehend verarbeitet werden. Dies führt wahrscheinlich zu einem Anstieg der Speichernutzung. Ich möchte jedoch erst dann weitere Dateien laden, wenn der GC ausgeführt wird. Andernfalls besteht das Risiko, dass mir der Speicher ausgeht.
Irgendwelche Vorschläge ?
javascript
node.js
garbage-collection
Rahul Iyer
quelle
quelle
Antworten:
Wenn Sie den Knotenprozess mit dem
--expose-gc
Flag starten , können Sie aufrufenglobal.gc()
, um den Knoten zum Ausführen der Speicherbereinigung zu zwingen. Beachten Sie, dass alle anderen Ausführungen in Ihrer Knoten-App angehalten werden, bis der GC abgeschlossen ist. Verwenden Sie sie daher nicht zu oft, da dies die Leistung beeinträchtigt.Möglicherweise möchten Sie eine Überprüfung einschließen, wenn Sie GC-Aufrufe aus Ihrem Code heraus ausführen, damit nichts schief geht, wenn der Knoten ohne das Flag ausgeführt wurde:
try { if (global.gc) {global.gc();} } catch (e) { console.log("`node --expose-gc index.js`"); process.exit(); }
quelle
node --v8-options
Mit Node können wir die Garbage Collection manuell auslösen. Dies kann erreicht werden, indem Node mit
--expose-gc
Flag (dhnode --expose-gc index.js
) ausgeführt wird.Sobald der Knoten in diesem Modus ausgeführt wird, können Sie jederzeit programmgesteuert eine Garbage Collection auslösen, indem Sie
global.gc()
von Ihrem Programm aus aufrufen .Ex -
// Force garbage collection every time this function is called try { if (global.gc) {global.gc();} } catch (e) { console.log("`node --expose-gc index.js`"); process.exit(); }
quelle
Eine Sache, die ich vorschlagen würde, ist, dass Sie versuchen, diese Dateien nur dann zu laden, wenn Sie sie benötigen, es sei denn, Sie benötigen sie direkt beim Start.
BEARBEITEN: Siehe den obigen Beitrag.
quelle
almost no memory
bis auf 9 MB, wenn Sie dieses Objekt für Suchvorschläge benötigen? Ich