javascript / expert
Snippet
Programmatisches Memory-Profiling in Node.js
Über das 'v8'-Modul können Node.js-Anwendungen programmatisch Heap-Snapshots erstellen. In Kombination mit manueller Garbage Collection (über das Flag --expose-gc) ermöglicht dies eine präzise Erkennung von Speicherlecks und diagnostische Berichte direkt aus der Produktions-Runtime.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
13
import v8 from 'node:v8';import fs from 'node:fs';function analyzeMemory() {if (typeof global.gc === 'function') {global.gc(); // Manual GC trigger (requires --expose-gc)}const stream = v8.getHeapSnapshot();const fileName = `${Date.now()}.heapsnapshot`;stream.pipe(fs.createWriteStream(fileName));console.log(`Snapshot saved: ${fileName}`);}
nodejs
Erklärung
1
global.gc();
Erzwingt einen Garbage-Collection-Zyklus, um nicht erreichbare Objekte vor der Aufnahme eines Snapshots zu löschen.
2
v8.getHeapSnapshot();
Gibt einen lesbaren Stream zurück, der den aktuellen V8-Heap-Zustand enthält.