concepto · intermedio · 1 min de lectura
Memory Leaks
Un memory leak ocurre cuando un programa reserva memoria y pierde la referencia sin liberarla, acumulando consumo hasta agotar los recursos.
No requiere conocimientos previos.
Alcance en breve
Cubre
- Memory Leaks as a concept
No cubre
- implementation details
Supone
- The reader understands relevant fundamentals.
Resumen
En lenguajes con recolección de basura —JavaScript, Java, Python—, un memory leak no es un malloc sin free. Es mantener referencias a objetos que ya no se necesitan, impidiendo que el garbage collector los libere. Ejemplos clásicos: event listeners no removidos, closures que capturan variables grandes, variables globales que acumulan datos, timers que nunca se cancelan.
El síntoma es un uso de memoria que crece monótonamente hasta que el proceso crashea con OOM (Out of Memory) o el sistema se degrada por swapping.
Alcance y supuestos
Cubre memory leaks, causas comunes y herramientas de diagnóstico. Asume familiaridad con desarrollo.
Modelo mental
Un escritorio donde apilás papeles y nunca tirás ninguno. Cada papel ocupa poco, pero después de un año no podés apoyar el teclado. El garbage collector es un asistente que tira papeles... pero solo los que claramente no necesitás. Si dejás un clip uniendo un papel viejo a uno nuevo, el asistente no puede tirar ninguno.
Uso práctico
- ✅ Tomar heap snapshots, usar profilers de memoria, monitorear en producción.
- ❌ Ignorar crecimiento gradual de memoria: es una bomba de tiempo.
Ejemplo trabajado: heap snapshot en Chrome DevTools
Abrís Memory → Heap Snapshot, interactuás con la app, tomás otro snapshot. Comparás. Los objetos que crecieron entre snapshots son candidatos a leak.
Evidencia
- Chrome DevTools, Node.js
--inspectyclinicson herramientas de diagnóstico de memory leaks.
Fuentes citadas
- Wikipedia, Unit testing (Síntesis, 21-07-2026)