javascript / expert
Snippet
Lebenszyklus-Management mit FinalizationRegistry
Die FinalizationRegistry-API ermöglicht es, einen Callback anzufordern, wenn ein Objekt vom Garbage Collector erfasst wird. Dies ist entscheidend für die Verwaltung von Low-Level-Ressourcen wie Dateideskriptoren oder externen Cache-Verbindungen, die nicht automatisch bereinigt werden.
snippet.js
1
2
3
4
5
6
7
8
9
10
11
12
const registry = new FinalizationRegistry((heldValue) => {console.log(`Resource ${heldValue} was garbage collected`);});function createHeavyResource(id) {const resource = { id, data: new BigInt64Array(1024) };registry.register(resource, id);return resource;}let temp = createHeavyResource('connection_01');temp = null; // Eligible for GC
nextjs
Erklärung
1
new FinalizationRegistry((heldValue) => { ... });
Erstellt ein Registry-Objekt, das nach dem GC einen Callback mit dem zugeordneten Wert ausführt.
2
registry.register(resource, id);
Registriert ein zu verfolgendes Objekt und ordnet ihm einen spezifischen Metadaten-Wert (id) zu.
3
temp = null;
Entfernt die einzige Referenz auf das Objekt, sodass es für den Garbage Collector freigegeben wird.