GCSettings.LargeObjectHeapCompactionMode GCSettings.LargeObjectHeapCompactionMode GCSettings.LargeObjectHeapCompactionMode GCSettings.LargeObjectHeapCompactionMode Property

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).Gets or sets a value that indicates whether a full blocking garbage collection compacts the large object heap (LOH).

public:
 static property System::Runtime::GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { System::Runtime::GCLargeObjectHeapCompactionMode get(); void set(System::Runtime::GCLargeObjectHeapCompactionMode value); };
[set: System.Security.SecurityCritical]
public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get; set; }
member this.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.One of the enumeration values that indicates whether a full blocking garbage collection compacts the LOH.

Comentarios

El montón de objeto grande se usa para asignar memoria para objetos grandes (como matrices) que requieren más de 85.000 bytes.The LOH is used for allocating memory for large objects (such as arrays) that require more than 85,000 bytes. Debido al impacto de rendimiento de la copia de grandes bloques de memoria, el recolector de elementos no utilizados normalmente barre el montón de objeto grande, lo que implica la creación de una lista de las ubicaciones de memoria que fueron ocupada por objetos muertos y que se puede reutilizar para satisfacer las solicitudes futuras para asignación de memoria de objetos grandes.Because of the performance impact of copying large blocks of memory, the garbage collector ordinarily sweeps the LOH, which involves creating a list of the memory locations that were occupied by dead objects and that can be reused to satisfy future requests for allocation of memory for large objects. Sin embargo, en las aplicaciones que hacen una uso del montón de objeto grande para almacenar objetos transitorios, fragmentación también puede afectar al rendimiento de memoria.However, in apps that make extensive use of the LOH to store transient objects, memory fragmentation can also adversely impact performance. En este caso, es posible usar el LargeObjectHeapCompactionMode propiedad compactar el montón de objeto grande en lugar de simplemente barrido durante una recolección de elementos no utilizados.In this case, it is possible to use the LargeObjectHeapCompactionMode property to compact rather than simply sweep the LOH during a garbage collection.

El valor predeterminado de la LargeObjectHeapCompactionMode propiedad es GCLargeObjectHeapCompactionMode.Default, lo que indica que no se compacta el montón de objeto grande durante las recolecciones de elementos no utilizados.The default value of the LargeObjectHeapCompactionMode property is GCLargeObjectHeapCompactionMode.Default, which indicates that the LOH is not compacted during garbage collections. Si asigna un valor de la propiedad GCLargeObjectHeapCompactionMode.CompactOncese compacta el montón de objeto grande durante la siguiente recolección de elementos no utilizados de bloqueo completa y el valor de propiedad se restablece a GCLargeObjectHeapCompactionMode.Default.If you assign the property a value of GCLargeObjectHeapCompactionMode.CompactOnce, the LOH is compacted during the next full blocking garbage collection, and the property value is reset to GCLargeObjectHeapCompactionMode.Default.

Nota

No están bloqueando las colecciones de elementos no utilizados en segundo plano.Background garbage collections are not blocking. Esto significa que, si establece la LargeObjectHeapCompactionMode propiedad GCLargeObjectHeapCompactionMode.CompactOnce, cualquier generación en segundo plano 2 colecciones que se producen posteriormente no utilizados no compacta el montón de objeto grande.This means that, if you set the LargeObjectHeapCompactionMode property to GCLargeObjectHeapCompactionMode.CompactOnce, any background generation 2 collections that occur subsequently do not compact the LOH. Solo la primera generación bloquea 2 colección compacta el montón de objeto grande.Only the first blocking generation 2 collection compacts the LOH.

Después de la LargeObjectHeapCompactionMode propiedad está establecida en GCLargeObjectHeapCompactionMode.CompactOnce, la siguiente recolección de elementos no utilizados de bloqueo completa (y la compactación de LOH) se producen en un momento futuro indeterminado.After the LargeObjectHeapCompactionMode property is set to GCLargeObjectHeapCompactionMode.CompactOnce, the next full blocking garbage collection (and compaction of the LOH) occurs at an indeterminate future time. Puede compactar el montón de objeto grande inmediatamente mediante código similar al siguiente:You can compact the LOH immediately by using code like the following:

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

Se aplica a

Consulte también: