No son solo las estructuras de datos de React las que se mantenían vivas. Por hooks y sus closures, esto a menudo mantenía vivos todo tipo de objetos de producto. Y en algunas situaciones, ni siquiera era necesario filtrar el código del producto. La limpieza de React no siempre era inmediata y, por lo tanto, aún se filtraba todo el árbol de fibra de las rutas anteriores.
Así que añadimos la optimización en React introduciendo un recorrido completo del árbol de fibra en nuestro montaje para hacer una limpieza más agresiva. Esto permite que el recolector de basura haga un mejor trabajo al limpiar un árbol de fibra sin límites. Y también cualquier fuga de memoria accidental se limita a un tamaño de fuga más pequeño.
Para medir todas estas mejoras, en realidad realizamos pruebas A-B en Facebook.com y el número de bloqueos automáticos de memoria en el navegador se redujo en un 50% debido a esa optimización. Y sorprendentemente, el recorrido completo no ralentizó la página. La memoria en realidad mejoró ligeramente el rendimiento de la página y observamos mejoras significativas en muchas otras métricas.
MemoryLab también incluye una herramienta en el navegador llamada MemoryLens para visualizar fugas de memoria directamente en la capa de depuración de la interfaz de usuario de la página web. La herramienta es un módulo JS que ejecuta la aplicación. Monitorea los cambios en el árbol DOM y la fibra de React. Y MemoryLens resalta el contorno de los componentes de React filtrados cuando sus elementos DOM se separan del árbol DOM pero aún se mantienen vivos en la memoria. También adjunta un ID de memoria especial a cada elemento DOM, lo que facilita vincularlos de nuevo a la vista en las instantáneas de heap.
También puedes buscar rápidamente el ID de memoria en las herramientas de desarrollo de Chrome cuando ves un contorno de componente filtrado y su ID en la capa de depuración de la interfaz de usuario. Tenemos más detalles en la página de documentación de MemoryLab para una guía completa de MemoryLens. Finalmente, un modelo de lenguaje grande y la codificación AI son bastante poderosos en estos días. Así que quiero hablar un poco sobre cómo MemoryLab con AI puede hacer que la detección de memoria, el análisis de memoria, y la depuración de memoria sean aún más fáciles.
En el repositorio de GitHub de MemoryLab, hemos añadido archivos de habilidades enseñando a AI cómo usar correctamente las herramientas de MemoryLab y las APIs de MemoryLab. Por ejemplo, puedes proporcionar archivos de habilidades a Meta-AI, ChattBot o CloudCode, pidiéndoles que escriban un archivo de escenario de prueba de MemoryLab para una aplicación web. También puedes copiar y pegar los resultados de detección de fugas con esas herramientas AI, pidiéndoles que expliquen o solucionen la fuga de memoria basada en la salida de MemoryLab. También puedes pedir a AI que te ayude a crear un plugin de analizador personalizado para una optimización avanzada de memoria usando la API de MemoryLab.
Finalmente, quiero presentar el paquete del servidor MCP de MemoryLab. Esto te permite pedir a herramientas de codificación AI como CloudCode que investiguen fugas de memoria en instantáneas de heap de JavaScript de manera más precisa. El servidor MCP carga instantáneas de heap solo una vez en un proceso local con estado y proporciona todas las herramientas MCP que AI necesita para consultar instantáneas de heap como un grafo de heap. Con los servidores MCP, AI puede recorrer y explorar el grafo de heap tanto como quiera y hacerlo de una manera más confiable y eficiente. En lugar de analizar la instantánea de heap en bruto desde cero para cada análisis de seguimiento y solicitudes, también te ahorrará muchos tokens cuando la instantánea de heap sea enorme.
Con el servidor MMP, puedes pedir a AI todo tipo de preguntas. Por ejemplo, carga instantáneas de heap en esta ubicación y dime qué está usando más memoria. ¿Por qué este nodo de fibra sigue vivo? ¿Hay más fugas de memoria y oportunidades de optimización de memoria? ¿Puedes crear un commit de código para solucionar esta fuga de memoria, etc.? El servidor MCP también admite una herramienta de evaluación que permite a AI escribir el código de análisis de heap usando la API de MemoryLab y ejecutarlo en un entorno sandbox. Así que AI puede hacer un análisis de heap muy avanzado basado en solicitudes simples. Por ejemplo, con el servidor MCP puedes dar a AI solicitudes como encontrar formas inconsistentes de objetos o clases ocultas que desperdician memoria. AI podrá encontrar ejemplos de diferentes órdenes de inserción de propiedades que causan la polimorfismo de diferentes formas para la misma clase de objetos. Es una herramienta bastante poderosa para ayudarnos a solucionar muchos problemas de memoria en Meta de un solo golpe. Te recomendamos encarecidamente que lo pruebes.
Bien, ese es el final de mi presentación. Más demostraciones, documentación, enlaces, recursos están disponibles en el repositorio de GitHub de MemoryLab. Gracias por escuchar.
Comments