0 Tage Serie
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
javascript
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.