Memory Leak Patterns
JavaScript 🔴 SeniorDefinition
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).