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.