Sobes.tech
Senior

Go-da tullantı toplayıcısı necə işləyir? Nə vaxt işə düşür? Əl ilə başlatmaq olarmı?

sobes.tech Süni İntellekt

AI-dan cavab

Go-da zib yığma (GC) tetiklenmiş, konkurrent, işarələmə və təmizləmə algoritmi ilə işləyən mark-and-sweep qrafik toplayıcısıdır.

Necə işləyir:

  • Proqramın işləməsi zamanı, GC müntəzəm olaraq işə salınır və istifadə olunmayan yaddaşı tapıb azad edir.
  • Əvvəlcə, bütün əlçatan obyektləri işarələyən (mark) mərhələ baş verir.
  • Sonra, əlçatan olmayan obyektlərin tutduğu yaddaşı azad edən (sweep) mərhələ gəlir.

Nə vaxt işə düşür:

  • GC avtomatik olaraq, ayrılmış yaddaş miqdarı cari istifadə və tənzimləmələrdən asılı olaraq müəyyən bir həddə çatdıqda işə düşür.

Əl ilə başlatmaq mümkündürmü:

  • Bəli, runtime paketindən runtime.GC() funksiyasını çağırmaqla əl ilə toplayıcıyı işə sala bilərsiniz.

Nümunə çağırış:

package main

import (
    "runtime"
)

func main() {
    // Açıqlama ilə toplayıcıyı işə salmaq
    runtime.GC()
}

Ancaq, GC-ni tez-tez əl ilə çağırmaq tövsiyə edilmir, çünki bu, performansa mənfi təsir göstərə bilər.