Share via


GCSettings.LargeObjectHeapCompactionMode Properti

Definisi

Mendapatkan atau menetapkan nilai yang menunjukkan apakah pengumpulan sampah pemblokiran penuh memampatkan tumpukan objek besar (LOH).

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

Nilai Properti

Salah satu nilai enumerasi yang menunjukkan apakah pengumpulan sampah pemblokiran penuh memampatkan LOH.

Atribut

Keterangan

LOH digunakan untuk mengalokasikan memori untuk objek besar (seperti array) yang memerlukan lebih dari 85.000 byte. Karena dampak performa menyalin blok memori yang besar, pengumpul sampah biasanya menyapu LOH, yang melibatkan pembuatan daftar lokasi memori yang ditempati oleh objek mati dan yang dapat digunakan kembali untuk memenuhi permintaan alokasi memori di masa mendatang untuk objek besar. Namun, dalam aplikasi yang memanfaatkan LOH secara ekstensif untuk menyimpan objek sementara, fragmentasi memori juga dapat berdampak buruk pada performa. Dalam hal ini, dimungkinkan untuk menggunakan LargeObjectHeapCompactionMode properti untuk memampatkan daripada hanya menyapu LOH selama pengumpulan sampah.

Nilai LargeObjectHeapCompactionMode default properti adalah GCLargeObjectHeapCompactionMode.Default, yang menunjukkan bahwa LOH tidak dikompilasi selama pengumpulan sampah. Jika Anda menetapkan properti nilai GCLargeObjectHeapCompactionMode.CompactOnce, LOH dikompilasi selama pengumpulan sampah pemblokiran penuh berikutnya, dan nilai properti diatur ulang ke GCLargeObjectHeapCompactionMode.Default.

Catatan

Pengumpulan sampah latar belakang tidak memblokir. Ini berarti bahwa, jika Anda mengatur LargeObjectHeapCompactionMode properti ke GCLargeObjectHeapCompactionMode.CompactOnce, setiap koleksi generasi 2 latar belakang yang terjadi kemudian tidak memadatkan LOH. Hanya koleksi pemblokiran generasi 2 pertama yang memadatkan LOH.

LargeObjectHeapCompactionMode Setelah properti diatur ke GCLargeObjectHeapCompactionMode.CompactOnce, pengumpulan sampah pemblokiran penuh berikutnya (dan pemadatan LOH) terjadi pada waktu yang tidak ditentukan di masa mendatang. Anda dapat segera memampatkan LOH dengan menggunakan kode seperti berikut:

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

Berlaku untuk

Lihat juga