GCSettings.LargeObjectHeapCompactionMode Propiedad

Definición

Obtiene o establece un valor que indica si una recolección de elementos no utilizados de bloqueo completo compacta el montón de objetos grandes (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

Valor de propiedad

Uno de los valores de enumeración que indica si una recolección de elementos no utilizados bloqueada completa compacta el LOH.

Atributos

Comentarios

LoH se usa para asignar memoria para objetos grandes (como matrices) que requieren más de 85 000 bytes. Debido al impacto en el rendimiento de copiar grandes bloques de memoria, el recolector de elementos no utilizados normalmente barre el LOH, lo que implica crear una lista de las ubicaciones de memoria ocupadas por objetos fallidos y que se pueden reutilizar para satisfacer solicitudes futuras para la asignación de memoria para objetos grandes. Sin embargo, en las aplicaciones que hacen un uso extenso de loH para almacenar objetos transitorios, la fragmentación de memoria también puede afectar negativamente al rendimiento. En este caso, es posible usar la LargeObjectHeapCompactionMode propiedad para compactar en lugar de simplemente barrer el LOH durante una recolección de elementos no utilizados.

El valor predeterminado de la LargeObjectHeapCompactionMode propiedad es GCLargeObjectHeapCompactionMode.Default, que indica que el LOH no se compacta durante las recolecciones de elementos no utilizados. Si asigna a la propiedad un valor de GCLargeObjectHeapCompactionMode.CompactOnce, el LOH se compacta durante la siguiente recolección completa de elementos no utilizados de bloqueo y el valor de la propiedad se restablece a GCLargeObjectHeapCompactionMode.Default.

Nota:

Las recolecciones de elementos no utilizados en segundo plano no están bloqueando. Esto significa que, si establece la LargeObjectHeapCompactionMode propiedad GCLargeObjectHeapCompactionMode.CompactOnceen , las colecciones de generación 2 en segundo plano que se producen posteriormente no compactan el LOH. Solo la primera colección de la generación 2 de bloqueo compacta el LOH.

Una vez establecida GCLargeObjectHeapCompactionMode.CompactOncela LargeObjectHeapCompactionMode propiedad en , la siguiente recolección completa de elementos no utilizados de bloqueo (y compactación del LOH) se produce en un momento futuro indeterminado. Puede compactar el LOH inmediatamente mediante código como el siguiente:

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

Se aplica a

Consulte también