Ir a Emagister Encuentra tu formación ideal
¡Mailxmail y emagister se unen para que tengas toda la formación a tu alcance!
12.185 cursos gratis
8.202.026 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Capítulo 13:

 Garbaje Collector. Programas (1/2)

1.2.8.1. ¿Cómo sabe el Garbage Collector que un objeto no se usa?

El Garbage Collector, como explicamos anteriormente, limpia de la memoria todos aquellos objetos que ya han dejado de tener utilidad para la aplicación. El conocer que un objeto está libre para su destrucción es posible gracias a un concepto llamado raíces (roots).

Toda aplicación tiene un conjunto de raíces que apuntan a los objetos que se encuentran en el Heap. Por ejemplo, todas las referencias globales y estáticas que apuntan a la “memoria administrada”; cualquier variable local con punteros a objetos de la pila de subprocesos; registros de la CPU que apuntan también a objetos del Heap, forman parte de las raíces de la aplicación. Todas las raíces activas son mantenidas por el compilador Just-In-Time(JIT) y el CLR, haciéndolas accesibles a los algoritmos de limpieza del Garbage Collector.

El Garbage Collector inspecciona todas las raíces mirando no sólo a que objeto apuntan, sino también si ese objeto apunta a su vez a otro objeto de la “memoria administrada”. AL final, acaba obteniendo una gráfica de que objetos están relacionados con quien y cual está activo y cual no. Ver el siguiente esquema.

esquema de raices

Un objeto que después de recorrer las raíces no ha sido localizado por ninguna, es un objeto que ya no se usa y por tanto puede ser recolectado en el siguiente Collect, es lo que se llama un objeto basura. El recolector va recorriendo los objetos de forma recursiva.

1.2.8.2. La Clase GC, el Garbage Collector de .Net

Dentro del espacio de nombres System, existe la clase GC. Esta clase es el Garbage Collector de .Net.

El Recolector no se ejecuta como parte de nuestra aplicación, sino que es un proceso añadido a la misma que consume recursos. Por tanto, Microsoft recomienda que su uso sea realizado de forma automática y que no se fuerce su ejecución. A pesar de esto, si uno quiere trabajar directamente sobre el Garbage Collector y manipularlo, existe la clase GC, que incluye ciertos métodos para su manejo.

Los métodos de esta clase influyen en el momento en que se realiza la recolección de elementos no utilizados de un objeto y en el momento en que se liberan los recursos asignados por un objeto. Las propiedades de esta clase proporcionan información sobre la cantidad de memoria total disponible en el sistema y la categoría de edad, o generación, de la memoria asignada a un objeto.

El recolector de elementos no utilizados realiza un seguimiento de los objetos asignados en la “memoria administrada”, y los reclama. De forma periódica, el recolector de elementos no utilizados reclama la memoria asignada a los objetos para los que no existen referencias válidas (las raíces de la aplicación, o referencias entre objetos). La recolección de elementos no utilizados se produce de forma automática, cuando una solicitud de memoria no puede satisfacerse utilizando la memoria libre que queda disponible. Una aplicación también puede provocar la recolección de elementos no utilizados mediante el método Collect.

La recolección de elementos no utilizados consta de los siguientes pasos:

* El recolector de elementos no utilizados busca los objetos administrados a los que se hace referencia en el código administrado.

* El recolector de elementos no utilizados intenta finalizar los objetos a los que no se hace referencia.

* El recolector de elementos no utilizados libera los objetos a los que no se hace referencia y reclama la memoria utilizada por estos objetos.

Nuestras novedades en tu e-mail

Escribe tu e-mail:

Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Cursos similares a Diseño de Aplicaciones Orientadas a Objetos (1/3)


  • Vídeo
  • Alumnos
  • Valoración
  • Cursos
1. Diseño de Aplicaciones Orientadas a Objetos (2/3)
Hoy veras junto a nosotros la segunda parte de nuestro curso de programación en... [06/10/11]
2  
2. DreamWeaver CS3. Objetos Spray
Tutorial de DreamWeaver CS3 . En el siguiente curso encontrarás una introducción a... [28/10/10]
1.374
Curso con video
3. Paleta información de Objetos Object Info de Vector Works
En este curso aprenderás la forma de utilizar el programa Vector Works para... [21/12/11]
6  

El blog de mailxmail|¿Qué es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail


Ponte al día de Diseño con nuestros cursos gratis