GCSettings.LargeObjectHeapCompactionMode Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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()