Rumah >pembangunan bahagian belakang >C++ >Bilakah Anda Harus Menggunakan GC.Collect()?
Memahami GC.Collect() dan Penggunaannya yang Sesuai
Secara langsung GC.Collect()
dalam kod anda biasanya tidak digalakkan. Walau bagaimanapun, situasi tertentu membenarkan penggunaannya.
Sebagai contoh, dalam aplikasi dengan corak pelaksanaan kitaran (melaksanakan tugasan, tidur), memulakan pengumpulan sampah secara proaktif boleh membebaskan memori yang dipegang oleh proses tidak aktif, meningkatkan pengurusan sumber.
Satu lagi senario sah timbul apabila sejumlah besar objek (terutamanya dalam generasi 1 dan 2) sedia untuk dikumpulkan. Pengumpulan sampah strategik, seperti selepas menutup borang besar, meminimumkan gangguan prestasi dan mengoptimumkan penggunaan sumber.
.NET 4.5 dan versi yang lebih baru menawarkan mod GC tertentu (GCLatencyMode.LowLatency
dan GCLatencyMode.SustainedLowLatency
). Apabila bertukar antara mod ini, kutipan sampah penuh (GC.Collect(2, GCCollectionMode.Forced)
) disyorkan untuk peralihan yang optimum.
Selain itu, .NET 4.6 dan kemudiannya menyediakan GC.TryStartNoGCRegion
, membolehkan anda menentukan bahagian kod tanpa pengumpulan sampah. Ben Watson dari Microsoft menasihati GC penuh sebelum dan selepas menggunakan kaedah ini.
Atas ialah kandungan terperinci Bilakah Anda Harus Menggunakan GC.Collect()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!