Condividi tramite


GC.RemoveMemoryPressure(Int64) Metodo

Definizione

Informa il runtime che è stata rilasciata memoria non gestita di cui non occorre più tenere conto durante la pianificazione della procedura di Garbage Collection.

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)

Parametri

bytesAllocated
Int64

Quantità di memoria non gestita che è stata rilasciata.

Attributi

Eccezioni

bytesAllocated è minore o uguale a 0.

-oppure-

In un computer a 32 bit è bytesAllocated maggiore di Int32.MaxValue.

Commenti

Per determinare quando pianificare l'operazione di Garbage Collection, il runtime tiene conto della quantità di memoria gestita allocata. Se un piccolo oggetto gestito alloca una grande quantità di memoria non gestita, il runtime prende in considerazione solo la memoria gestita e quindi sottovaluta l'urgenza di pianificare l'operazione di Garbage Collection. Il AddMemoryPressure metodo informa il runtime di questa pressione aggiuntiva sulla memoria di sistema e il RemoveMemoryPressure metodo informa il runtime che è stata rilasciata una pressione aggiuntiva.

I AddMemoryPressure metodi e RemoveMemoryPressure migliorano le prestazioni solo per i tipi che dipendono esclusivamente dai finalizzatori per rilasciare le risorse non gestite. Non è necessario usare questi metodi nei tipi che seguono il modello dispose, in cui i finalizzatori vengono usati per pulire le risorse non gestite solo nel caso in cui un consumer del tipo dimentica di chiamare Dispose. Per altre informazioni sulla finalizzazione degli oggetti e sul modello dispose, vedere Pulizia delle risorse non gestite.

Nel modello di utilizzo più semplice, un oggetto gestito alloca la memoria non gestita nel costruttore e la rilascia nel Finalize metodo . Chiamare il AddMemoryPressure metodo dopo aver allocato la memoria non gestita e chiamare il metodo dopo il RemoveMemoryPressure rilascio.

In scenari più complessi, in cui l'allocazione di memoria non gestita cambia sostanzialmente durante la durata dell'oggetto gestito, è possibile chiamare i AddMemoryPressure metodi e RemoveMemoryPressure per comunicare queste modifiche incrementali al runtime.

Attenzione

È necessario assicurarsi di rimuovere esattamente la quantità di pressione che si aggiunge. In caso contrario, è possibile influire negativamente sulle prestazioni del sistema nelle applicazioni eseguite per lunghi periodi di tempo.

Si applica a