Pelaksanaan Kutipan Sampah Go
Go ialah bahasa yang melaksanakan kutipan sampah untuk pengurusan memori automatik. Keluaran awal Go menggunakan pengumpul mark-and-sweep yang konservatif, tetapi pelaksanaannya telah berkembang sejak itu.
Kemas Kini GC 1.1 hingga 1.3:
- Sapuan serentak untuk masa jeda yang dikurangkan
- Sampah tepat sepenuhnya koleksi
Pelan Go 1.4 GC:
- Pengumpul serentak dunia/hibrid
- Tanda tiga warna- algoritma dan-sweep
- Bukan generasi dan tidak padat
Ciri-ciri Pengumpulan Sampah Go:
-
Tanda-dan-sapu: Melibatkan penandaan objek yang masih dirujuk dan menyapu yang tidak bertanda objek.
-
Bukan generasi: Tidak membahagikan timbunan kepada generasi yang berbeza berdasarkan umur objek.
-
Tidak padat: Tidak bergerak objek hidup di sekeliling dalam ingatan.
-
Sepenuhnya tepat: Menjejak semua rujukan kepada objek dengan tepat, menghapuskan potensi penunjuk berjuntai.
-
Stop-the-world: Menjeda program semasa pengumpulan sampah (dalam Go 1.4 ), menghasilkan dalam jeda.
-
Latensi rendah: Matlamat untuk masa jeda rendah semasa kutipan sampah.
Pertimbangan untuk Menggantikan GC Go:
Menggantikan pengumpul sampah Go ialah topik yang diperdebatkan. Beberapa faktor yang perlu dipertimbangkan termasuk:
-
GC Generasi: Mungkin tidak memberikan peningkatan prestasi yang ketara untuk timbunan yang lebih kecil.
-
Pakej tidak selamat: Membuat ia mencabar untuk melaksanakan pemungut sampah yang tepat dan padat sepenuhnya.
Atas ialah kandungan terperinci Bagaimanakah Pengumpulan Sampah Go Berfungsi, dan Apakah Pertukaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!