GC.AddMemoryPressure(Int64) Metodo

Definizione

Informa il runtime di un'allocazione di una grande quantità di memoria non gestita di cui tenere conto durante la pianificazione della procedura di Garbage Collection.

[System.Security.SecurityCritical]
public static void AddMemoryPressure (long bytesAllocated);
public static void AddMemoryPressure (long bytesAllocated);

Parametri

bytesAllocated
Int64

Quantità incrementale di memoria non gestita che è stata allocata.

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 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 tiene conto solo della memoria gestita e quindi sottovaluta l'urgenza della pianificazione di Garbage Collection. Il AddMemoryPressure metodo informa il runtime di questa pressione aggiuntiva sulla memoria di sistema.

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 di eliminazione, dove gli 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 dell'oggetto e sul modello di eliminazione, vedere Pulizia delle risorse non gestite.

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

Negli scenari più complessi, in cui l'allocazione della memoria non gestita cambia notevolmente 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 aggiunta. La mancata operazione può influire negativamente sulle prestazioni del sistema nelle applicazioni che vengono eseguite per lunghi periodi di tempo.

Si applica a

Prodotto Versioni
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0