Compartilhar via


GC.AddMemoryPressure(Int64) Método

Definição

Informa o runtime de uma alocação grande de memória não gerenciada que deve ser levada em conta durante o agendamento da coleta de lixo.

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

Parâmetros

bytesAllocated
Int64

O valor incremental de memória não gerenciada alocado.

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.

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