Evaluar y enviar comentarios
Esta página es específica de
Microsoft Visual Studio 2005/.NET Framework 2.0

Hay además otras versiones disponibles para:
Manual del programador de .NET Framework
Recolección de elementos no utilizados

El recolector de elementos no utilizados de .NET Framework administra la asignación y liberación de la memoria de la aplicación. Cada vez que se utiliza un operador new para crear un objeto, el motor en tiempo de ejecución asigna al objeto memoria del montón administrado. Siempre que haya espacio de direcciones disponible en el montón nativo, el motor en tiempo de ejecución continúa asignando espacio a los objetos nuevos. No obstante, la memoria no es infinita. En ocasiones, el recolector de elementos no utilizados debe realizar una recolección para liberar alguna memoria. El motor de optimización del recolector de elementos no utilizados determina cuál es el mejor momento para realizar una recolección, según las asignaciones que se estén realizando. Cuando el recolector de elementos no utilizados realiza una recolección, comprueba si en el montón administrado hay objetos que la aplicación ya no utiliza y realiza las operaciones necesarias para reclamar su memoria.

En esta sección se describe cómo el recolector de elementos no utilizado administra automáticamente la asignación y liberación de la memoria de los objetos administrados en la aplicación. Además, describe el patrón de diseño recomendado que se debe utilizar para limpiar correctamente los recursos no administrados que la aplicación crea.

NoteNota

En la versión 1.0 de .NET Framework, Common Language Runtime (CLR) tiene un administrador de memoria independiente para el montón de objetos grandes. En algunas circunstancias, este administrador de memoria no devuelve al sistema operativo la memoria no utilizada y, en muy pocos casos, no pone la memoria a disposición de la recolección de elementos no utilizados. Esto tiene como resultado la incapacidad de asignar memoria debido a la fragmentación del espacio de direcciones virtual. En las versiones 1.1 y 2.0 de .NET Framework, el montón de objetos grandes se compone de áreas de memoria contiguas denominadas segmentos de montón, correctamente alineadas para minimizar la fragmentación de memoria virtual. Durante la recolección de elementos no utilizados, se consolida el espacio reclamado de los objetos grandes y se coloca en una lista libre. Se liberan los segmentos de montón que sólo contienen elementos de lista libre y se devuelve la memoria al sistema operativo. Estos cambios realizados en el montón de objetos grandes han eliminado eficazmente los errores de asignación de memoria causados por la fragmentación del espacio de direcciones virtual.

NoteImportante

En servidores con más de 2 GB de memoria, puede ser necesario especificar el modificador /3GB en el archivo boot.ini para evitar aparentes problemas de falta de memoria mientras que sigue habiendo memoria disponible en el sistema.

En esta sección

Tareas del desarrollador en la administración de la memoria

Describe los ajustes que deben realizar los desarrolladores que normalmente utilizan Visual Basic, C++ y COM cuando cambian a código administrado.

Métodos Finalize y destructores

Describe cómo los destructores y métodos Finalize permiten que un objeto realice las operaciones de limpieza necesarias antes de que el recolector de elementos no utilizados reclame la memoria del objeto.

Limpiar recursos no administrados

Describe el patrón de diseño recomendado para limpiar los recursos no administrados. Esta sección incluye ejemplos de código para las siguientes tareas:

Forzar una recolección de elementos no utilizados

Describe cómo y cuándo se debe provocar una recolección de elementos no utilizados.

Secciones relacionadas

GC (clase)

Proporciona métodos para interactuar con el recolector de elementos no utilizados del sistema.

Object.Finalize (método)

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de que el objeto sea reclamado por el recolector de elementos no utilizados.

Interfaz IDisposable

Proporciona la funcionalidad de una clase de recursos.

Ejemplo Garbage Collection Technology

Presenta la funcionalidad del recolector de elementos no utilizados de .NET Framework.

Contenido de la comunidad   ¿Qué es Community Content?
Agregar contenido nuevo RSS  Anotaciones
Processing
© 2012 Microsoft. Reservados todos los derechos. Términos de uso | Marcas Registradas | Privacidad
Page view tracker