Garbage Collection


Sekilas Mengenai Garbage Collection

Written by Achmad Rizal Muttaqin on Tuesday January 17, 2017
- Comments
Achmad Rizal Muttaqin

Para pembaca yang budiman,kali ini saya akan share sedikit informasi mengenai istilah Garbage Collection pada pemrograman secara general. Garbage Collection pertama kali ditemukan oleh John McCarthy pada sekitar tahun 1959 untuk melakukan abstraksi terhadap manajemen memori manual pada bahasa pemrograman Lisp.

Garbage Collection merupakan suatu bentuk manajemen memori otomatis,dimana terdapat suatu yang disebut Collector yang akan berusaha untuk melakukan dealokasi terhadap Garbage,yaitu memori yang dialokasikan untuk objek tertentu yang sudah tidak digunakan lagi. Pada prakteknya,sudah banyak bahasa pemrograman yang sudah memakai Garbage Collection,antara lain Java,C#,D Language,Go Language,dan kebanyakan bahasa scripting. Ada juga bahasa pemrograman yang didesain untuk manajemen memori manual,tetapi memiliki implementasi Garbage Collection,antara lain C dan C++. Dan ada juga bahasa pemrograman yang dapat melakukan manajemen memori manual dan juga menggunakan Garbage Collection,antara lain Ada,Modula-3,atau C++/CLI

Berikut ini adalah contoh dari implementasi Garbage Collector pada bahasa pemrograman Java


// Kode Program
import java.util.Date;
public class TestGC {
    public static void main(String[] args) {
        Runtime rt = Runtime.getRuntime();
        System.out.println("jumlah memory awal : " +rt.totalMemory());
        for(int i=0; i < 1000000; i++) {
            Date d = new Date();
            d = null;
        }
        //
        System.out.println("Jumlah memory yang tersedia  sebelum gc : " + rt.freeMemory());
        System.gc();
        System.out.println("Jumlah memory yang tersedia setelah gc : " + rt.freeMemory());
    }
}

// Output
jumlah memory awal : 7864320
Jumlah memory yang tersedia  sebelum gc : 6980416
Jumlah memory yang tersedia setelah gc : 7678080

Program 1

Dari kode Program 1 dapat dilihat bahwa saat melakukan deklarasi variabel tipe Date sebanyak 1000000, memori akan berkurang sebagai akibat dari pengalokasian untuk setiap variabel Date yang yang dideklarasikan. Akan tetapi, pada setiap perulangan yang dilakukan, variabel diset kembali menjadi null, yang berarti bahwa memori yang tadinya digunakan untuk alokasi variabel tersebut merupakan Garbage dan tidak dapat diakses kembali tetapi masih ada di dalam memori. Pada saat itulah, implementasi Garbage Collector dari bahasa pemrograman Java digunakan untuk mengklaim kembali memori yang sudah tidak terpakai agar nantinya dapat digunakan lagi. Implementasi Garbage Collector pada bahasa pemrograman Java adalah dengan melakukan pemanggilan pada fungsi gc() pada class System, yakni System.gc()

Source

comments powered by Disqus

— Copyright © 2017 PT. Comestoarra Bentarra Noesantarra —