GCSettings.LargeObjectHeapCompactionMode Özellik

Tanım

Tam engelleyici çöp toplamanın büyük nesne yığınını (LOH) sıkıştırıp sıkıştırmadığını belirten bir değer alır veya ayarlar.

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

Özellik Değeri

Tam engelleyen çöp toplamanın LOH'yi sıkıştırıp sıkıştırmadığını gösteren numaralandırma değerlerinden biri.

Öznitelikler

Açıklamalar

LOH, 85.000 bayttan fazla gerektiren büyük nesneler (diziler gibi) için bellek ayırma için kullanılır. Büyük bellek bloklarını kopyalamanın performans etkisi nedeniyle, atık toplayıcı normalde loh'u süpürür. Bu, ölü nesneler tarafından işgal edilen ve büyük nesneler için bellek ayırmaya yönelik gelecek istekleri karşılamak üzere yeniden kullanılabilen bellek konumlarının listesini oluşturmayı içerir. Ancak geçici nesneleri depolamak için LOH'dan kapsamlı bir şekilde yararlanan uygulamalarda bellek parçalanması performansı olumsuz etkileyebilir. Bu durumda, atık toplama sırasında LOH'yi süpürmek yerine sıkıştırmak için özelliğini kullanmak LargeObjectHeapCompactionMode mümkündür.

özelliğinin LargeObjectHeapCompactionMode varsayılan değeri, LOH'nin çöp toplama işlemleri sırasında sıkıştırılmadığını gösteren değeridir GCLargeObjectHeapCompactionMode.Default. özelliğine değerini GCLargeObjectHeapCompactionMode.CompactOnceatarsanız, LOH bir sonraki tam engelleme çöp toplama işlemi sırasında sıkıştırılır ve özellik değeri olarak GCLargeObjectHeapCompactionMode.Defaultsıfırlanır.

Not

Arka plan çöp koleksiyonları engellenmiyor. Bu, özelliğini olarak GCLargeObjectHeapCompactionMode.CompactOnceayarlarsanızLargeObjectHeapCompactionMode, daha sonra oluşan arka plan 2 koleksiyonlarının LOH'yi sıkıştırmadığı anlamına gelir. LoH'yi yalnızca ilk engelleyen 2. nesil koleksiyon sıkıştırıyor.

LargeObjectHeapCompactionMode özelliği olarak GCLargeObjectHeapCompactionMode.CompactOnceayarlandıktan sonra, sonraki tam engelleme çöp toplaması (ve LOH sıkıştırması) belirsiz bir gelecekte gerçekleşir. Aşağıdaki gibi bir kod kullanarak LOH'yi hemen sıkıştırabilirsiniz:

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

Şunlara uygulanır

Ayrıca bkz.