Gestión de Memoria – Parte IV
Parte I | Parte II | Parte III
A pesar de que con el marco. NET no tenemos que preocuparnos activamente
sobre la gestión de memoria y recolección de basura (GC), todavía tenemos
que mantener la gestión de memoria y GC en cuenta a fin de optimizar el
rendimiento de nuestras aplicaciones. Además, tener una comprensión básica
de cómo funciona la gestión de memoria ayudará a explicar el comportamiento
de las variables con las que trabajamos en todos los programas que escribimos.
Aquí vamos a examinar el Recolector de Basura (GC) y algunas concejos para
mantener nuestras aplicaciones funcionando de manera eficiente.
Graphing
Representemos el papel del GC. Si somos responsables de "limpiar la
basura" necesitamos un plan para hacerlo con eficacia. Obviamente,
tenemos que determinar lo que es basura y lo que no lo es.
Con el fin de determinar lo que debe mantenerse, lo primero que se nos
puede ocurrir es pensar que todo lo que no se utiliza es basura.
Imaginemos que vivimos con nuestros dos buenos amigos: José Ismael
Torres (JIT) y Cecilia Lorena Ramirez (CLR). José y Cecilia no pueden
perder de vista lo que están utilizando y nos dan una lista de cosas
que necesitan mantener a su alcance.
Lo primero que hacemos es crear una lista inicial que llamaremos "raíz",
tiene esta designación, puesto que, será utilizada como punto de partida.
A continuación creamos una lista maestra para organizar todo lo que está
en la casa y que se desea conservar. Y tenemos por último una lista de
trabajo con todas las tareas que debemos ejecutar. Todas las cosas que
son necesarias para ejecutar nuestra lista de trabajo se añaden a nuestra
lista maestra.
Veamos como el GC funciona. Este recibe una lista "raíz" con los objetos
que son demandados por el compilador Just-In-Time (JIT) y por el Common
Language Runtime (CLR) (¿recuerda José y Cecilia?). A partir de aquí,
construimos a través de búsquedas recursivas de referencia a los objetos
que son necesarios para una organización correcta de lo que se debe
mantener.
Sharing is caring. Share this article now!