Memahami Garbage Collection Pada Ruby

Tahu kan kalau setiap variable pada Ruby itu me-reference pada object?

pry(main)> a = "absyah"
=> "absyah"
pry(main)> b = a
=> "absyah"
pry(main)> a.object_id
=> 220332560
pry(main)> b.object_id
=> 220332560

Pada contoh code diatas, variable areference ke object String dengan id 220332560. Begitu juga variable bmereferensi ke object yang sama.

Semisal kita memiliki code seperti berikut ini:

ry(main)> a = 'absyah'
=> "absyah"
pry(main)> a.object_id
=> 221622720
pry(main)> a = 'ardian'
=> "ardian"
pry(main)> a.object_id
=> 224114340

Code diatas artinya memerintahkan ruby untuk mereferensikan variable ake object String yang lainnya. Dari object 221622720 ke object 224114340 dengan demikian object 221622720 tersebut akan menjadi sampah pada memory karena tidak dipakai lagi / tidak mereferensi ke variable manapun.

Dari sini sudah kelihatan ya apa tugas garbage collector pada Ruby tersebut? ya benar!! Untuk menghapus sampah-sampah / object yang tidak tereferensi. Jadi kekurangan pada bahasa pemrogramman dengan garbage collection itu yaitu ada potensi memory leak. Jadi kita sebagai developer suatu bahasa tertentu dituntut untuk pandai dalam memanage hal tersebut.

Semoga bermanfaat! (:

Jika menyukai tulisan ini silakan untuk subscribe agar memperoleh info tulisan terbaru lainnya seputar programming yang tidak kalah menarik.

 




absyah