JavaScript’te Garbage Collector (Çöp Toplayıcı)

Mustafa Tuğrul Köse
FLO Teknoloji
Published in
2 min readJun 15, 2023

JavaScript, modern web tarayıcılarında kullanılan bir programlama dilidir. Birçok web geliştiricisi tarafından kullanılır ve javascript’te bellek yönetimi önemli bir konudur. JavaScript’te, bellek yönetimi otomatik olarak gerçekleştirilir ve bu sırada Garbage Collector (Çöp Toplayıcı) kullanılır. Peki bu garbage collector nedir, nasıl çalışır aşağıda detaylı bir şekilde ele alacağız.

Garbage Collector Nedir?

Garbage Collector, bir web sitesi çalışırken gereksiz kod bloglarındaki refaranslarını bulan ve temizleyen bir sistemdir. JavaScript’te, bu nesnelerin bellekte yer kaplamasına gerek olmadığında otomatik olarak temizlenir. Bu işlem, programlayan kişinin yada kişilerin bellek yönetimiyle uğraşmasını azaltmış olur.

Çöp Toplayıcının Çalışma Mekanizması

JavaScript’te Garbage Collector, kullanılmayan nesneleri bulmak ve bunları bellekten temizlemek için arka planda çeşitli algoritmalara sahiptir. Bu algoritmalar çalışırken programcı herhangi bir müdahalede bulunmaz bu işlemler otomatik olarak gerçekleştirilir.

Çöp Toplayıcı aşağıdaki adımları izleyerek çalışır:

  • Referans Sayımı
  • Dolaşma
  • Temizleme

Referans Sayımı: Her nesne için bir referans sayısı tutulur. Bir nesne bir değişkene atandığında veya başka bir nesne tarafından referans alındığında, referans sayısı artar. Referans kaybolduğunda, sayısı azalır. Referans sayısı sıfıra ulaşan nesneler, kullanılmayan nesneler olarak kabul edilir. Örnek verecek olursak

yukarıdaki örnekte referans olarak galeri değişkeni oluşturuldu ve bellekte yer kaplamaya başladı.

Dolaşma: Çöp Toplayıcı, nesneler arasında dolaşır ve referans sayısı sıfıra ulaşan nesneleri tespit eder. Dolaşma işlemi, genellikle “kök” nesnelerden başlar. Kök nesneler, JavaScript motorunun bildiği ve doğrudan erişilebilen nesnelerdir (örneğin, global nesne veya yürütülen fonksiyonun yerel değişkenleri). Kök nesneler, diğer nesnelere referansları olduğunda onları da kök olarak işaretler.

bellekte yer alan honda aracın modeli 2006 oldu bu aşamada herhangi referans sadece değiştiği için bi temizleme işlemi yapılmadı sadece referans güncellenmiş oldu.

Temizleme: Çöp Toplayıcı, kullanılmayan nesneleri bellekten temizler. Bu işlem sırasında, gereksiz nesnelerin bellekte kapladığı alan geri kazanılır ve başka nesneler için kullanılabilir hale gelir.

burada galeri nesnesinin refaransı’nı boş’a eşitledik ve garbage collector referans sayısı 0 olduğu için burada otomatik olarak bir bellek temizleme işlemi yaptı.

Özetleyecek olursak;

  • Referans erişilebilir olduğu müddetçe hafızada kalır.
  • Çöp toplama otomatik olarak yapılır ve engellenemez.
  • Kullanılmayan nesneleri mümkün olan en kısa sürede referanslardan kaldırılmalıdır.
  • Birbiri ile bağlantılı olan bir obje tamamiyle erişilemez hale getirilebilir.

Garbage collector yapı olarak basit görünsede, otomatik olarak bir çok işlemi yapsada, javascript geliştiricileri, Garbage Collector’ın nasıl çalıştığını anlamak ve bellek yönetimiyle ilgili en iyi şekilde optimizasyonlar yapması gerekmektedir.

--

--