javascript / expert
Snippet
Feinmaschige Überwachung der Garbage Collection
Die Verwendung von PerformanceObserver mit dem Eintragstyp 'gc' ermöglicht es Anwendungen, das Verhalten der Speicherverwaltung in Echtzeit zu überwachen. Dies ist entscheidend für das Erkennen von Speicherdruck oder 'Stop-the-world'-Pausen, die die Latenz in Hochleistungsserver beeinträchtigen könnten.
snippet.js
1
2
3
4
5
6
7
8
9
import { PerformanceObserver } from 'node:perf_hooks';const obs = new PerformanceObserver((list) => {const entry = list.getEntries()[0];console.log(`GC detected: ${entry.kind} | Duration: ${entry.duration}ms`);console.log(`Heap used: ${entry.detail.afterUsedHeapSize}`);});obs.observe({ entryTypes: ['gc'] });
nodejs
Erklärung
1
import { PerformanceObserver } from 'node:perf_hooks';
Greift auf das Performance-Messprogramm von Node zu.
2
const entry = list.getEntries()[0];
Ruft den spezifischen GC-Performance-Eintrag ab, der Dauer und Typ enthält.
3
entry.kind
Gibt den Typ der GC an (z. B. 'scavenge' für Minor oder 'mark-sweep-compact' für Major).
4
obs.observe({ entryTypes: ['gc'] });
Beginnt gezielt auf Garbage-Collection-Ereignisse der V8-Engine zu hören.