Performance y Memory: encuentra cuellos de botella reales

Registra perfiles de rendimiento, detecta long tasks y analiza consumo de memoria para evitar congelaciones y fugas.

Cuando una web 'va lenta', necesitas pruebas concretas: CPU alta, long tasks, bloqueos de main thread o fuga de memoria.

En esta parte vas a interpretar trazas de Performance y snapshots de memoria para tomar decisiones con criterio pro ⚙️.

Si aún no controlas Network, repasa <a href="/curso/devtools/leccion/devtools-network-analisis-network">la lección de análisis de red</a> antes de perfilar.

  • Grabar sin escenario reproducible da ruido, no diagnóstico.
  • Define una acción concreta (ej: abrir modal, filtrar tabla, enviar formulario) y graba solo ese flujo.
  • Busca tareas largas, scripts costosos y repaints excesivos en timeline.
  • Si memoria sube sin bajar tras interacción repetida, hay sospecha fuerte.
  • Haz snapshots antes y después de varias iteraciones para comparar objetos retenidos.

Cómo grabar un perfil útil

Grabar sin escenario reproducible da ruido, no diagnóstico.

Define una acción concreta (ej: abrir modal, filtrar tabla, enviar formulario) y graba solo ese flujo.

Busca tareas largas, scripts costosos y repaints excesivos en timeline.

Fugas de memoria: señales y validación

Si memoria sube sin bajar tras interacción repetida, hay sospecha fuerte.

Haz snapshots antes y después de varias iteraciones para comparar objetos retenidos.

Los listeners no limpiados y referencias globales son causas frecuentes de leak.

DevTools
08

Performance y Memory: encuentra cuellos de botella reales

Registra perfiles de rendimiento, detecta long tasks y analiza consumo de memoria para evitar congelaciones y fugas.

Código del tema: Performance tab: detectar Long Tasks

📘 Teoría

Cómo grabar un perfil útil

Grabar sin escenario reproducible da ruido, no diagnóstico.

1

Define una acción concreta (ej: abrir modal, filtrar tabla, enviar formulario) y graba solo ese flujo.

2

Busca tareas largas, scripts costosos y repaints excesivos en timeline.

Fugas de memoria: señales y validación

Si memoria sube sin bajar tras interacción repetida, hay sospecha fuerte.

1

Haz snapshots antes y después de varias iteraciones para comparar objetos retenidos.

2

Los listeners no limpiados y referencias globales son causas frecuentes de leak.

Marca de rendimiento
performance.mark('inicio');
// tarea costosa
performance.mark('fin');
performance.measure('bloque', 'inicio', 'fin');

🧪 Aprende probando

Ejemplo Ejemplo guiado: medir bloque costoso Compara tiempo de ejecución en consola.
Ejemplo Ejemplo guiado: performance.measure Usa marks para registrar duración exacta.
Ejemplo Demo: simular long task Genera bloqueo para verlo en Performance panel.

🏁 Retos

Reto Reto: instrumenta una tarea Añade time/timeEnd alrededor de una función.
Reto Reto: añade performance.mark Instrumenta inicio y fin de proceso.

🧰 Recursos

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .