Saltar al contenido

Dónde se va la memoria de verdad

El desglose de una aplicación con webview: qué ocupa el motor, qué ocupa tu frontend, qué ocupa el core, y cuál de los tres crece con el uso.

El desglose

El motor es lo grande en reposo y no es lo que crece. Lo que crece son las tres filas amarillas, y las tres son tuyas.

Las cinco fuentes de crecimiento

La cuarta es la más difícil de encontrar y la más común en aplicaciones con muchas pantallas: cada navegación deja algo detrás, y en ocho horas eso suma.

Cómo se localiza

Tres herramientas, en orden de facilidad:

  • Medir en dos momentos. Nivel 56.5: al arrancar y tras una jornada. Si el número se ha multiplicado, hay una de las cinco.
  • Instantáneas de memoria del frontend. Las herramientas del navegador permiten hacer dos capturas y comparar qué ha crecido entre ellas. Es la forma más directa de encontrar las fuentes 1 a 4.
  • Y contar nodos del árbol. Una línea en la consola dice cuántos elementos hay; si crece monótonamente con el uso, es la fuente 1.

La segunda es la que da la respuesta, y merece aprenderla: comparar dos instantáneas señala exactamente qué objetos se están acumulando y quién los retiene.

El caso del core

Menos frecuente y existe:

  • Un estado que acumula sin descartar: resultados de operaciones, registros en memoria, conexiones.
  • Y las herramientas de Rust para esto son distintas: hay perfiladores de asignación de memoria que dicen dónde se reserva y qué no se libera.

Pero el patrón habitual es que el crecimiento esté arriba, en el frontend, porque es donde vive el árbol y las imágenes. Empezar por ahí ahorra tiempo.