Tengo una aplicación Angular y noté que cuando la página se cierra (y la aplicación se destruye), algunas importaciones de secuencias de comandos permanecen en la memoria. Esto es, por ejemplo, lo que me dice el generador de perfiles de memoria de Chrome después de que abrí y cerré mi aplicación dos veces desde la última instantánea de memoria:
Como puede ver, hay un par de elementos de vendor.js en (compiled code) que no son accesibles para el GC (la distancia es - ).
Algo que encontré es que, si elimino manualmente la etiqueta de secuencia de comandos de vendor.js (es decir, abro la pestaña Elementos en las herramientas de desarrollo, luego presiono Supr para eliminar la etiqueta de secuencia de comandos), luego cierro la aplicación, ya no hay pérdida de memoria. .
Sin embargo, si trato de eliminar la etiqueta del script de la consola (utilizando, por ejemplo document.body.getElementsByTagName('script')[1].remove() que tiene como objetivo el script correcto), obtengo una diferencia de instantánea de memoria similar a la siguiendo:
Así que supongo que mis preguntas son:
No encontré mucho en la web. Me encontré con estos: