Mark-and-Sweep

JavaScript 🔴 Senior

Definition

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.

#core#engine#performance