Partager via


GCSettings.LargeObjectHeapCompactionMode Propriété

Définition

Obtient ou définit une valeur qui indique si un garbage collection bloquant complet compacte le tas d’objets volumineux (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

Valeur de propriété

Une des valeurs d’énumération qui indique si un garbage collection bloquant complet compacte le LOH.

Attributs

Remarques

Le LOH est utilisé pour allouer de la mémoire pour les objets volumineux (tels que les tableaux) qui nécessitent plus de 85 000 octets. En raison de l’impact sur les performances de la copie de grands blocs de mémoire, le garbage collector balaye normalement le LOH, ce qui implique la création d’une liste des emplacements de mémoire occupés par des objets morts et qui peuvent être réutilisés pour satisfaire les demandes futures d’allocation de mémoire pour les objets volumineux. Toutefois, dans les applications qui utilisent largement le LOH pour stocker des objets temporaires, la fragmentation de la mémoire peut également avoir un impact négatif sur les performances. Dans ce cas, il est possible d’utiliser la LargeObjectHeapCompactionMode propriété pour compacter plutôt que simplement balayer le LOH pendant un garbage collection.

La valeur par défaut de la LargeObjectHeapCompactionMode propriété est GCLargeObjectHeapCompactionMode.Default, ce qui indique que le LOH n’est pas compacté pendant les garbage collections. Si vous affectez à la propriété une valeur GCLargeObjectHeapCompactionMode.CompactOncede , le LOH est compacté lors du nettoyage de la mémoire de blocage complet suivant, et la valeur de la propriété est réinitialisée à GCLargeObjectHeapCompactionMode.Default.

Note

Les garbage collections d’arrière-plan ne bloquent pas. Cela signifie que, si vous définissez la LargeObjectHeapCompactionMode propriété GCLargeObjectHeapCompactionMode.CompactOncesur , les collections de génération 2 d’arrière-plan qui se produisent par la suite ne compactent pas le LOH. Seule la première collection de génération 2 bloquante compacte le LOH.

Une fois la LargeObjectHeapCompactionMode propriété définie GCLargeObjectHeapCompactionMode.CompactOncesur , le prochain garbage collection de blocage complet (et compactage du LOH) se produit à un moment futur indéterminé. Vous pouvez compacter immédiatement le LOH à l’aide de code comme suit :

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

S’applique à

Voir aussi