Daftar Isi:
Definisi - Apa artinya Pengumpulan Sampah (GC)?
Pengumpulan sampah (GC) adalah pendekatan dinamis untuk manajemen memori otomatis dan alokasi tumpukan yang memproses dan mengidentifikasi blok memori mati dan mengalokasikan kembali penyimpanan untuk digunakan kembali. Tujuan utama pengumpulan sampah adalah untuk mengurangi kebocoran memori.
Implementasi GC membutuhkan tiga pendekatan utama, sebagai berikut:
- Mark-and-sweep - Dalam proses ketika memori habis, GC menemukan semua memori yang dapat diakses dan kemudian mengambil kembali memori yang tersedia.
- Referensi penghitungan - Objek yang dialokasikan berisi jumlah referensi dari nomor referensi. Ketika jumlah memori nol, objek tersebut adalah sampah dan kemudian dihancurkan. Memori yang dibebaskan kembali ke tumpukan memori.
- Koleksi salin - Ada dua partisi memori. Jika partisi pertama penuh, GC menempatkan semua struktur data yang dapat diakses dan menyalinnya ke partisi kedua, memadatkan memori setelah proses GC dan memungkinkan memori bebas terus menerus.
Beberapa bahasa pemrograman dan platform dengan built-in GC (mis. Java, Lisp, C # dan .Net) mengatur kebocoran memori, memungkinkan untuk pemrograman yang lebih efisien.
Techopedia menjelaskan Pengumpulan Sampah (GC)
Pendekatan dinamis pengumpulan sampah ke alokasi tumpukan otomatis mengatasi kesalahan umum dan mahal yang sering mengakibatkan cacat program dunia nyata saat tidak terdeteksi.
Karena sulit diidentifikasi dan diperbaiki, kesalahan alokasi mahal. Dengan demikian, pengumpulan sampah dianggap oleh banyak orang sebagai fitur bahasa penting yang membuat pekerjaan programmer lebih mudah dengan manajemen alokasi tumpukan manual yang lebih rendah. Namun, GC tidak sempurna, dan kelemahan berikut harus dipertimbangkan:
- Saat membebaskan memori, GC mengonsumsi sumber daya komputasi.
- Proses GC tidak dapat diprediksi, menghasilkan penundaan sesi yang tersebar.
- Ketika referensi objek yang tidak digunakan tidak dibuang secara manual, GC menyebabkan kebocoran memori logis.
- GC tidak selalu tahu kapan harus memproses dalam lingkungan memori virtual komputer desktop modern.
- Proses GC berinteraksi buruk dengan sistem cache dan memori virtual, yang mengakibatkan kesulitan penyesuaian kinerja.