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).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.

Atributos

Comentarios

El montón se usa para asignar memoria para objetos grandes (por ejemplo, matrices) que requieran 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 en el rendimiento de la copia de grandes bloques de memoria, el recolector de elementos no utilizados suele barrido el montón de objetos, lo que implica la creación de una lista de las ubicaciones de memoria que ocupaban los objetos muertos y que se puede reutilizar para satisfacer solicitudes futuras para asignación de memoria para 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 un uso intensivo del montón de objetos para almacenar objetos transitorios, la fragmentación de la memoria también puede afectar negativamente al rendimiento.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 utilizar la LargeObjectHeapCompactionMode propiedad para compactar en lugar de simplemente barrido del montó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, que indica que el montón no se compacta 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 a la propiedad un valor de GCLargeObjectHeapCompactionMode.CompactOnce, el montón se compacta durante la siguiente recolección de elementos no utilizados de bloqueo completo y el valor de la GCLargeObjectHeapCompactionMode.Defaultpropiedad se restablece en.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

Las recolecciones de elementos no utilizados en segundo plano no se bloquean.Background garbage collections are not blocking. Esto significa que, si establece la LargeObjectHeapCompactionMode propiedad en GCLargeObjectHeapCompactionMode.CompactOnce, las colecciones de la generación 2 en segundo plano que se producen posteriormente no compactan el montón.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 colección de bloqueos de generación 2 compacta el montón de montón.Only the first blocking generation 2 collection compacts the LOH.

Después de LargeObjectHeapCompactionMode establecer la propiedad en GCLargeObjectHeapCompactionMode.CompactOnce, se produce la siguiente recolección de elementos no utilizados de bloqueo completa (y compactación del montón de subconjuntos) a una hora indeterminada futura.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 montón inmediatamente mediante código como el 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: