Berhati-hati apabila menggunakan GC.Kumpul
Walaupun memanggil GC.Collect()
secara langsung secara amnya tidak disyorkan, terdapat keadaan tertentu di mana berbuat demikian adalah munasabah. Contohnya, apabila perkhidmatan berjalan dalam gelung dan melahu untuk masa yang lama selepas melaksanakan tugas, memaksa kutipan sampah semasa fasa melahu untuk melepaskan memori yang diduduki oleh proses yang hampir tamat tempoh boleh mengoptimumkan penggunaan sumber.
Situasi lain yang boleh diterima ialah selepas menutup borang besar dalam aplikasi GUI. Memandangkan semua kawalan UI layak untuk pengumpulan sampah pada ketika ini, dan penurunan prestasi ringkas semasa penutupan borang mungkin tidak disedari oleh pengguna, adalah munasabah untuk memulakan pengumpulan GC.
Selain itu, situasi berikut juga mungkin memerlukan pertimbangan untuk memanggil GC.Collect()
:
GCLatencyMode.LowLatency
untuk memaksa GC penuh apabila masuk atau keluar GCLatencyMode.SustainedLowLatency
atau GC.Collect(2, GCCollectionMode.Forced)
. GC.TryStartNoGCRegion
. Adalah disyorkan untuk mencetuskan GC penuh secara manual sebelum dan selepas tempoh ini. Pengecualian ini menekankan kepentingan berhati-hati apabila memanggil GC.Collect()
. Sebelum membuat keputusan ini, pastikan anda menilai persekitaran khusus anda dan potensi kesan prestasi anda.
Atas ialah kandungan terperinci Bilakah Boleh Diterima untuk Memanggil GC.Collect()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!