Memory Leak Patterns

JavaScript 🔴 Senior

Definition

Patterns courants de fuites memoire : event listeners non retires, closures retenant de gros objets, references DOM detachees, timers oublies, caches non bornes.

Analogie

Des robinets qui fuient dans la maison : individuellement c'est rien, mais au bout d'un mois la facture d'eau explose.

Exemple de code

// Fuite: listener jamais retire
window.addEventListener('resize', handler);
// Fuite: closure retient tout le scope
function init() {
  const bigData = new Array(1e6);
  return () => console.log(bigData.length);
}
// Fix: retirer les listeners, nullifier les refs

Cas d'usage

Debugger les apps qui ralentissent avec le temps, onglets qui consomment de plus en plus de RAM.

Anti-pattern

Ignorer le cleanup dans useEffect (React) ou ngOnDestroy (Angular).
#core#performance#debug