GCSettings.LargeObjectHeapCompactionMode Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur indiquant si un garbage collection de blocage 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é
L’une des valeurs d’énumération indiquant si un garbage collection de blocage complet compacte le tas d’objets volumineux (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 blocs de mémoire volumineux, le garbage collector balaye normalement le LOH, ce qui implique la création d’une liste des emplacements de mémoire qui ont été occupés par des objets morts et qui peuvent être réutilisés pour répondre aux 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 le garbage collection. Si vous affectez à la propriété la valeur GCLargeObjectHeapCompactionMode.CompactOnce, le LOH est compacté lors du garbage collection de blocage complet suivant, et la valeur de la propriété est réinitialisée à GCLargeObjectHeapCompactionMode.Default.
Notes
Les collectes de mémoires en arrière-plan ne bloquent pas. Cela signifie que, si vous définissez la propriété sur LargeObjectHeapCompactionModeGCLargeObjectHeapCompactionMode.CompactOnce, toutes les collections d’arrière-plan de génération 2 qui se produisent par la suite ne compactent pas le LOH. Seule la première collection bloquante de génération 2 compacte le LOH.
Une fois la LargeObjectHeapCompactionMode propriété définie sur GCLargeObjectHeapCompactionMode.CompactOnce, le garbage collection de blocage complet suivant (et le compactage du LOH) se produit à un moment futur indéterminé. Vous pouvez compacter immédiatement le LOH en utilisant du code comme suit :
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce
GC.Collect()