Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam kebanyakan kasus, pengumpul sampah dapat menentukan waktu terbaik untuk melakukan pengumpulan, dan Anda harus membiarkannya berjalan secara independen. Ada situasi yang jarang terjadi ketika koleksi paksa dapat meningkatkan performa aplikasi Anda. Dalam kasus ini, Anda dapat menginduksi pengumpulan sampah dengan menggunakan GC.Collect metode untuk memaksa pengumpulan sampah.
GC.Collect Gunakan metode ketika ada pengurangan jumlah memori yang signifikan yang digunakan pada titik tertentu dalam kode aplikasi Anda. Misalnya, jika aplikasi Anda menggunakan kotak dialog kompleks yang memiliki beberapa kontrol, memanggil Collect saat kotak dialog ditutup dapat meningkatkan performa dengan segera mengklaim kembali memori yang digunakan oleh kotak dialog. Pastikan aplikasi Anda tidak terlalu sering menginduksi pengumpulan sampah, karena itu dapat mengurangi performa jika pengumpul sampah mencoba merebut kembali objek pada waktu yang tidak optimal. Anda dapat memberikan nilai enumerasi GCCollectionMode.Optimized ke metode Collect untuk mengumpulkan hanya ketika pengumpulan akan produktif, seperti yang dibahas di bagian berikutnya.
Mode pengumpulan GC
Anda dapat menggunakan salah GC.Collect satu metode kelebihan beban yang menyertakan GCCollectionMode nilai untuk menentukan perilaku untuk koleksi paksa sebagai berikut.
GCCollectionMode nilai |
Deskripsi |
|---|---|
| Default | Menggunakan pengaturan pengumpulan sampah default untuk versi .NET yang sedang berjalan. |
| Forced | Memaksa pengumpulan sampah segera terjadi. Ini setara dengan memanggil GC.Collect() kelebihan beban. Ini menghasilkan koleksi pemblokiran penuh dari semua generasi. Anda juga dapat memampatkan tumpukan objek besar dengan mengatur GCSettings.LargeObjectHeapCompactionMode properti ke GCLargeObjectHeapCompactionMode.CompactOnce sebelum memaksa pengumpulan sampah pemblokiran penuh segera. |
| Optimized | Memungkinkan pengumpul sampah untuk menentukan apakah waktu saat ini optimal untuk mengklaim kembali objek. Pengumpul sampah dapat menentukan bahwa proses pengumpulan tidak akan cukup produktif untuk dianggap, dalam hal ini akan kembali tanpa mengambil kembali objek. |
Latar belakang atau pengumpulan yang menghambat
Anda dapat memanggil metode overload GC.Collect(Int32, GCCollectionMode, Boolean) untuk menentukan apakah koleksi yang diinduksi memblokir atau tidak. Jenis koleksi yang dilakukan tergantung pada kombinasi parameter mode dan blocking metode.
mode adalah anggota GCCollectionMode enumerasi, dan blocking merupakan Boolean nilai. Tabel berikut ini meringkas interaksi mode argumen dan blocking .
mode |
blocking = true |
blocking = false |
|---|---|---|
| Forced atau Default | Pengumpulan pemblokiran dilakukan secepat mungkin. Jika koleksi latar belakang sedang berlangsung dan pembuatannya adalah 0 atau 1, Collect(Int32, GCCollectionMode, Boolean) metode segera memicu pengumpulan pemblokiran dan kembali ketika koleksi selesai. Jika koleksi latar belakang sedang berlangsung dan generation parameternya adalah 2, metode menunggu hingga koleksi latar belakang selesai, memicu pemblokiran koleksi generasi 2, lalu kembali. |
Pengumpulan harus dilakukan sesegera mungkin. Metode Collect(Int32, GCCollectionMode, Boolean) ini meminta pengumpulan latar belakang, tetapi ini tidak dijamin; tergantung pada keadaannya, pengumpulan yang menghambat mungkin masih dilakukan. Jika pengumpulan data latar belakang sudah berlangsung, metode segera mengembalikan. |
| Optimized | Pengumpulan pemblokiran dapat dilakukan, tergantung pada status pengumpul sampah dan generation parameter . Pengumpul sampah mencoba memberikan performa yang optimal. |
Pengumpulan dapat dilakukan, tergantung pada keadaan pengumpul sampah. Metode Collect(Int32, GCCollectionMode, Boolean) ini meminta pengumpulan latar belakang, tetapi ini tidak dijamin; tergantung pada keadaannya, pengumpulan yang menghambat mungkin masih dilakukan. Pengumpul sampah mencoba memberikan performa yang optimal. Jika pengumpulan data latar belakang sudah berlangsung, metode segera mengembalikan. |