Mark-and-Sweep
JavaScript 🔴 SeniorDefinition
Algorithme de GC utilise par V8 : phase Mark parcourt le graphe d'objets depuis les racines (global, stack) et marque les atteignables. Phase Sweep libere les non-marques.
Analogie
Un inventaire d'entrepot : tu coches (mark) tout ce qui est sur la liste de commandes, puis tu jettes (sweep) le reste.
Exemple de code
// Racines GC: global, stack, registres
// Atteignable = survit
window.app = { data: [1,2,3] }; // atteignable via window
// Non atteignable = GC
function leak() {
const huge = new Array(1e6);
// huge est GC apres retour de leak()
}
Cas d'usage
Comprendre pourquoi certains objets ne sont pas collectes et diagnostiquer les fuites memoire.