Comparteix a través de


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

La 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 la creación de una lista de las ubicaciones de memoria ocupadas por objetos inactivos y que se pueden reutilizar para satisfacer solicitudes futuras de asignación de memoria para objetos grandes. Sin embargo, en las aplicaciones que hacen un uso exhaustivo 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 , cualquier colección de generación 2 en segundo plano que se produzca posteriormente no compacte el LOH. Solo la primera colección de bloqueo de generación 2 compacta el LOH.

Después de establecer 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