Compartir vía


GC.RemoveMemoryPressure(Int64) Método

Definición

Informa al tiempo de ejecución de que se ha liberado la memoria no administrada y ya no se necesita tener en cuenta al programar la recolección de elementos no utilizados.

public:
 static void RemoveMemoryPressure(long bytesAllocated);
[System.Security.SecurityCritical]
public static void RemoveMemoryPressure (long bytesAllocated);
public static void RemoveMemoryPressure (long bytesAllocated);
[<System.Security.SecurityCritical>]
static member RemoveMemoryPressure : int64 -> unit
static member RemoveMemoryPressure : int64 -> unit
Public Shared Sub RemoveMemoryPressure (bytesAllocated As Long)

Parámetros

bytesAllocated
Int64

Cantidad de memoria no administrada que se ha liberado.

Atributos

Excepciones

bytesAllocated es menor o igual que 0.

o bien

En un equipo de 32 bits, bytesAllocated es mayor que Int32.MaxValue.

Comentarios

Para determinar cuándo programar la recolección de elementos no utilizados, el tiempo de ejecución tiene en cuenta la cantidad de memoria administrada asignada. Si un objeto administrado pequeño asigna una gran cantidad de memoria no administrada, el tiempo de ejecución solo tiene en cuenta la memoria administrada y, por tanto, subestima la urgencia de programar la recolección de elementos no utilizados. El AddMemoryPressure método informa al tiempo de ejecución de esta presión adicional sobre la memoria del sistema y el RemoveMemoryPressure método informa al tiempo de ejecución de que se ha liberado la presión adicional.

Los AddMemoryPressure métodos y RemoveMemoryPressure mejoran el rendimiento solo para los tipos que dependen exclusivamente de los finalizadores para liberar los recursos no administrados. No es necesario usar estos métodos en los tipos que siguen el patrón dispose, donde los finalizadores se usan para limpiar los recursos no administrados solo en caso de que un consumidor del tipo olvide llamar Disposea . Para obtener más información sobre la finalización de objetos y el patrón dispose, consulte Limpieza de recursos no administrados.

En el patrón de uso más sencillo, un objeto administrado asigna memoria no administrada en el constructor y lo libera en el Finalize método . Llame al AddMemoryPressure método después de asignar la memoria no administrada y llame al RemoveMemoryPressure método después de liberarlo.

En escenarios más complicados, donde la asignación de memoria no administrada cambia sustancialmente durante la vigencia del objeto administrado, puede llamar a los AddMemoryPressure métodos y RemoveMemoryPressure para comunicar estos cambios incrementales al tiempo de ejecución.

Precaución

Debe asegurarse de quitar exactamente la cantidad de presión que agregue. Si no lo hace, puede afectar negativamente al rendimiento del sistema en las aplicaciones que se ejecutan durante largos períodos de tiempo.

Se aplica a