Share via


GCSettings.LargeObjectHeapCompactionMode Proprietà

Definizione

Ottiene o imposta un valore che indica se un'operazione completa di Garbage Collection bloccante comprime l'heap degli oggetti grandi (LOH).

public:
 static property System::Runtime::GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { System::Runtime::GCLargeObjectHeapCompactionMode get(); void set(System::Runtime::GCLargeObjectHeapCompactionMode value); };
public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get; [System.Security.SecurityCritical] set; }
public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get; set; }
[<set: System.Security.SecurityCritical>]
static member LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
static member LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
Public Shared Property LargeObjectHeapCompactionMode As GCLargeObjectHeapCompactionMode

Valore della proprietà

Uno dei valori di enumerazione che indica se un'operazione completa di Garbage Collection bloccante comprime l'heap degli oggetti grandi (LOH).

Attributi

Commenti

LoH viene usato per allocare memoria per oggetti di grandi dimensioni (ad esempio matrici) che richiedono più di 85.000 byte. A causa dell'impatto sulle prestazioni della copia di blocchi di memoria di grandi dimensioni, il Garbage Collector esegue in modo ordinario loh, che implica la creazione di un elenco delle posizioni di memoria occupate da oggetti morti e che possono essere riutilizzati per soddisfare le richieste future per soddisfare le richieste future per l'allocazione della memoria per oggetti di grandi dimensioni. Tuttavia, nelle app che usano ampiamente LOH per archiviare oggetti temporanei, la frammentazione della memoria può influire negativamente sulle prestazioni. In questo caso, è possibile usare la proprietà per compattare anziché semplicemente spazzare LOH LargeObjectHeapCompactionMode durante una Garbage Collection.

Il valore predefinito della LargeObjectHeapCompactionMode proprietà è GCLargeObjectHeapCompactionMode.Default, che indica che loH non è compattato durante le garbage collections. Se si assegna alla proprietà un valore di GCLargeObjectHeapCompactionMode.CompactOnce, loH viene compattato durante la successiva Garbage Collection di blocco completo e il valore della proprietà viene reimpostato su GCLargeObjectHeapCompactionMode.Default.

Nota

Le garbage collection in background non bloccano. Ciò significa che, se si imposta la proprietà su GCLargeObjectHeapCompactionMode.CompactOnce, tutte le LargeObjectHeapCompactionMode raccolte di seconda generazione in background che si verificano successivamente non compattano loH. Solo la prima collezione di generazione 2 bloccante compatta loH.

Dopo che la proprietà è impostata su GCLargeObjectHeapCompactionMode.CompactOnce, il LargeObjectHeapCompactionMode successivo garbage collection di blocco completo (e compattazione del LOH) si verifica in un momento indeterminato. È possibile compattare immediatamente LOH usando il codice simile al seguente:

GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce
GC.Collect()

Si applica a

Vedi anche