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,
runtimepaketindənruntime.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.