Partilhar via


GC.RemoveMemoryPressure(Int64) Método

Definição

Informa ao runtime que memória não gerenciada foi liberada e não precisa ser considerada ao agendar a coleta de lixo.

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

A quantidade de memória não gerenciada que foi liberada.

Atributos

Exceções

bytesAllocated é menor ou igual a 0.

- ou -

Em um computador de 32 bits, bytesAllocated é maior que Int32.MaxValue.

Comentários

Ao determinar quando agendar a coleta de lixo, o runtime leva em conta a quantidade de memória gerenciada alocada. Se um pequeno objeto gerenciado aloca uma grande quantidade de memória não gerenciada, o runtime leva em conta apenas a memória gerenciada e, portanto, subestima a urgência de agendar a coleta de lixo. O AddMemoryPressure método informa o runtime dessa pressão adicional sobre a memória do sistema e o RemoveMemoryPressure método informa ao runtime que a pressão adicional foi liberada.

Os AddMemoryPressure métodos e RemoveMemoryPressure melhoram o desempenho apenas para tipos que dependem exclusivamente de finalizadores para liberar os recursos não gerenciados. Não é necessário usar esses métodos em tipos que seguem o padrão de descarte, em que os finalizadores são usados para limpo recursos não gerenciados somente no caso de um consumidor do tipo esquecer de chamar Dispose. Para obter mais informações sobre a finalização do objeto e o padrão de descarte, consulte Limpando recursos não gerenciados.

No padrão de uso mais simples, um objeto gerenciado aloca memória não gerenciada no construtor e a libera no Finalize método . Chame o AddMemoryPressure método depois de alocar a memória não gerenciada e chame o RemoveMemoryPressure método depois de liberá-lo.

Em cenários mais complicados, em que a alocação de memória não gerenciada muda substancialmente durante o tempo de vida do objeto gerenciado, você pode chamar os AddMemoryPressure métodos e RemoveMemoryPressure para comunicar essas alterações incrementais ao runtime.

Cuidado

Você deve garantir que remova exatamente a quantidade de pressão adicionada. Não fazer isso pode afetar negativamente o desempenho do sistema em aplicativos que são executados por longos períodos de tempo.

Aplica-se a