ios - liberar - js garbage collection
Fugas de UIWebView, JS Garbage Collector y WebCore VM (1)
He estado creando una función de navegador para una aplicación que obviamente funciona con UIWebView. He visto saltar la memoria cuando se abre el navegador, lo que tiene sentido, sin embargo, estoy viendo algunos resultados preocupantes durante un perfil de filtraciones:
Los recolectores de basura VM y JS : los datos purgables de WebCore siguen subiendo mientras más navego. Lo que es aún peor es que cuando se desasigna el navegador y se libera la vista web, estos objetos aún están allí, ocupando más de 6 MB de memoria.
No estoy seguro de qué pasa si no estoy manejando UIWebView correctamente, pero parece haber un problema con esta memoria retenida después de que UIWebView es desasignado.
Realizo algunas tareas de limpieza antes de que el navegador sea desasignado como se detalla en esta publicación http://www.codercowboy.com/code-uiwebview-memory-leak-prevention/ pero esto no parece estar haciendo ninguna diferencia.
¿Alguien ha tenido este problema? Cualquier idea sería increíble. He visto algunas preguntas relacionadas con problemas de memoria de UIWebView, pero no detallan específicamente los resultados de un perfil.
No estoy seguro si inmediatamente consideraría esto como un problema. Esas máquinas virtuales solo comienzan cuando agrega una vista web a su jerarquía de vistas y carga una solicitud con ella.
Puede ser simplemente el sistema operativo el que mantenga vivos esos recursos en caso de que se usen nuevamente.
Traté de replicar tu código que limpia los datos y tuve una caída del 50%.
El recolector de basura JS siempre tenía un mínimo de 3 MB, pero tenía un máximo de 8 MB. Los datos purgables de WebCore siempre estaban en torno a los 700 KB.
También puede considerar que esto puede estar relacionado con JavaScript incorrecto que continúa vivo debido a filtraciones en el código JavaScript.