GCSettings.LargeObjectHeapCompactionMode Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Tam engelleyici çöp toplamanın büyük nesne yığınını (LOH) sıkıştırıp sıkıştırmadığını gösteren 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 engelleyici çö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'yi süpürür. Bu, ölü nesneler tarafından kullanılan ve büyük nesneler için bellek ayırmaya yönelik gelecekteki istekleri karşılamak için yeniden kullanılabilen bellek konumlarının listesini oluşturmayı içerir. Ancak geçici nesneleri depolamak için LOH'u kapsamlı bir şekilde kullanan 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 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.
Uyarı
Arka plan çöp koleksiyonları engellenmiyor. Bu, özelliğini GCLargeObjectHeapCompactionMode.CompactOnceolarak ayarlarsanızLargeObjectHeapCompactionMode, daha sonra oluşan arka plan 2 koleksiyonlarının LOH'yi sıkıştırmadığı anlamına gelir. Yalnızca ilk engelleyen 2. nesil koleksiyon LOH'yi sıkıştırıyor.
LargeObjectHeapCompactionMode özelliği olarak GCLargeObjectHeapCompactionMode.CompactOnceayarlandıktan sonra, sonraki tam engelleyici çöp toplama (ve LOH sıkıştırma) 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()