GCSettings.LargeObjectHeapCompactionMode Vlastnost
Definice
Získává nebo nastavuje hodnotu, která indikuje, jestli úplné blokující uvolňování paměti komprimuje haldu velkých objektů (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; }
public static System.Runtime.GCLargeObjectHeapCompactionMode LargeObjectHeapCompactionMode { get; set; }
[<set: System.Security.SecurityCritical>]
member this.LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
member this.LargeObjectHeapCompactionMode : System.Runtime.GCLargeObjectHeapCompactionMode with get, set
Public Shared Property LargeObjectHeapCompactionMode As GCLargeObjectHeapCompactionMode
Hodnota vlastnosti
Jedna z hodnot výčtu, která určuje, zda úplné blokující uvolňování paměti komprimuje LOH.One of the enumeration values that indicates whether a full blocking garbage collection compacts the LOH.
- Atributy
Poznámky
LOH se používá k přidělování paměti pro velké objekty (například pole), které vyžadují více než 85 000 bajtů.The LOH is used for allocating memory for large objects (such as arrays) that require more than 85,000 bytes. Vzhledem k dopadu na výkon při kopírování velkých bloků paměti systém uvolňování paměti obvykle vyřazuje LOH, což zahrnuje vytvoření seznamu umístění paměti, která byla obsazena mrtvými objekty a která lze znovu použít k uspokojení budoucích požadavků na přidělení paměti pro velké objekty.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. Nicméně v aplikacích, které výrazně využívají LOH k ukládání přechodných objektů, může fragmentace paměti také negativně ovlivnit výkon.However, in apps that make extensive use of the LOH to store transient objects, memory fragmentation can also adversely impact performance. V takovém případě je možné použít LargeObjectHeapCompactionMode vlastnost k komprimaci místo pouhého SELOHování během uvolňování paměti.In this case, it is possible to use the LargeObjectHeapCompactionMode property to compact rather than simply sweep the LOH during a garbage collection.
Výchozí hodnota LargeObjectHeapCompactionMode vlastnosti je GCLargeObjectHeapCompactionMode.Default , což znamená, že LOH není komprimována během uvolňování paměti.The default value of the LargeObjectHeapCompactionMode property is GCLargeObjectHeapCompactionMode.Default, which indicates that the LOH is not compacted during garbage collections. Pokud vlastnost přiřadíte jako hodnotu GCLargeObjectHeapCompactionMode.CompactOnce , LOH se zkomprimuje během dalšího úplného blokujícího uvolňování paměti a hodnota vlastnosti se obnoví na 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.
Poznámka
Kolekce uvolnění paměti na pozadí nejsou blokovány.Background garbage collections are not blocking. To znamená, že pokud nastavíte LargeObjectHeapCompactionMode vlastnost na GCLargeObjectHeapCompactionMode.CompactOnce , všechny kolekce na pozadí generace 2, ke kterým dojde, následně nekomprimuje LOH.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. Pouze první blokující kolekce 2 komprimuje LOH.Only the first blocking generation 2 collection compacts the LOH.
Po LargeObjectHeapCompactionMode nastavení vlastnosti na je GCLargeObjectHeapCompactionMode.CompactOnce příští úplné blokující uvolňování paměti (a komprimace LOH) prováděna v neurčitém budoucím čase.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. LOH můžete zkomprimovat hned pomocí kódu podobného následujícímu:You can compact the LOH immediately by using code like the following:
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce;
GC.Collect();
GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce
GC.Collect()