Saltar al contenido

Encontrar fugas de memoria

Repite la navegación y detecta objetos retenidos en memoria al volver a la página inicial. Examina la acumulación observada en el navegador.

Fragmento del informe

Ver qué grupo crece entre iteraciones

Ejemplo ilustrativo de navegación y regreso. Los valores explican el informe y no son resultados de su sitio.

Cambio de ruta

/catalog → /product → /catalog × 5

La navegación terminó, pero los objetos de estado de la página anterior siguen en memoria. Su número aumenta con cada repetición. Investiga qué referencias los retienen.

Objetos de modelos de vista de ruta
Antes → después
846 → 1451
Delta
+605
Delta / iteración
+121
Set<observerTarget>
Antes → después
34 → 74
Delta
+40
Delta / iteración
+8
memoria nativa
Antes → después
41.2 → 54.7 MB
Delta
+13.5 MB
Delta / iteración
+2.7 MB

Datos ilustrativos para explicar el informe. Los resultados de su página aparecen tras el análisis.

Cómo funciona

Repetimos un escenario y contamos el delta entre pasadas

Escenario

Elegimos enlaces de la página

El escáner encuentra hasta tres enlaces internos visibles. Repite cinco veces cada navegación y el regreso a la página de partida.

Delta

Comparamos el uso de memoria

Tras una pasada de calentamiento, medimos la memoria retenida después de navegar repetidamente. Así se observa una acumulación que no aparece en la primera carga.

Grupos de crecimiento

Mostramos qué se acumula

El informe enumera colecciones, escuchadores de eventos, nodos DOM y tipos de objetos que crecen. Para las colecciones también muestra los puntos del código donde se modificaron, si están disponibles.

Módulos de análisis

Qué incluye el informe de fugas de memoria

Escenario

Escenario comprobado

El informe almacena la URL, la ruta de usuario comprobada, el número de iteraciones y el indicador de fuga para que el hallazgo pueda reproducirse.

fugaURLiteraciones
Delta

Crecimiento total de memoria

Compara el crecimiento total y por iteración en la misma navegación. La acumulación es un motivo para inspeccionar los objetos retenidos. Las cachés intencionales y el estado de la aplicación también pueden mantener memoria en uso.

delta totalpor iteraciónestadísticas de memoria
Colecciones

Array, Map, Set, Object

Las colecciones en crecimiento se listan por separado: tamaño antes y después, delta, delta por iteración y trazas de pila donde cambió la colección.

MapObjecttraza de pila
Escuchadores

Escuchadores de eventos y nodos

El informe muestra los recuentos de escuchadores antes y después del escenario, el delta resultante y los nodos de escuchadores con fugas donde crecen las suscripciones.

antes / despuésdelta de nodospor iter
DOM

Crecimiento de nodos del DOM

El informe muestra el crecimiento de nodos del DOM y las descripciones de nodos con fugas, lo que facilita encontrar DOM desconectado o inicialización repetida de la interfaz.

recuento de nodosdescripcióndesconectado
Objetos del heap

Tipos de objetos del heap

Para los tipos de objetos en crecimiento, el informe incluye el delta de recuento, el delta de tamaño, el delta de tamaño retenido y los valores por iteración. Cuando existen datos del entorno, se muestran por separado el heap total, el nativo y el de V8.

delta de recuentodelta de tamañoretenido
Preguntas frecuentes

Preguntas frecuentes sobre fugas de memoria

Respuestas breves sobre el delta por iteración, colecciones en crecimiento, listeners, nodos del DOM y qué hacer después del informe.

¿Todo aumento de memoria es una fuga?
No. Una aplicación puede conservar datos que aún necesita. El escáner busca acumulación al repetir una navegación, pero desconoce qué datos necesita tu aplicación. Comprueba qué retiene los objetos y si deberían liberarse al volver.
¿Qué son los nodos DOM desconectados?
Son elementos eliminados del documento que siguen en memoria por referencias de JavaScript. Por ejemplo, puede quedar una referencia a un diálogo cerrado. Las descripciones de los nodos acotan la búsqueda; verifica en el código qué referencia los retiene.
¿Puede la comprobación encontrar fugas de event listeners?
Sí. El informe muestra los recuentos de listeners antes y después, el delta total, el delta por iteración y los nodos de listeners con fuga junto con el delta del recuento de nodos. Esto ayuda a distinguir una suscripción puntual de los handlers añadidos en cada repetición.
¿Qué páginas y acciones comprueba el escáner?
La comprobación está pensada para SPA con navegación sin recarga completa. El escáner elige hasta tres enlaces internos visibles y repite la navegación de ida y vuelta. No comprueba por separado formularios, búsquedas ni la apertura de diálogos. Si no hay enlaces adecuados, la comprobación falla; eso no significa que no haya fugas.
¿Qué debo hacer después de encontrar una fuga?
Repite la navegación indicada y encuentra los objetos retenidos al volver. Revisa las modificaciones de colecciones, la retirada de escuchadores y las referencias a elementos eliminados. Tras corregirlo, repite la comprobación y compara el crecimiento en la misma navegación.
Cookies

Usamos cookies

Usamos cookies para ofrecerte una mejor experiencia en nuestro sitio. Puedes obtener más información sobre cómo usamos las cookies en nuestra política de privacidad.