Sobes.tech
Junior — Middle

Kako se vrši automatsko čišćenje nepotrebnih podataka u memoriji u programskim jezicima?

sobes.tech АИ

Одговор од АИ

U programskim jezicima kao što je Go, automatsko upravljanje memorijom implementirano je pomoću sakupljača smeća (Garbage Collector, GC). Sakupljač smeća prati objekte u memoriji i određuje koje više nisu u upotrebi od strane programa (tj. na njih nema referenci). Takvi objekti smatraju se "otpadom" i automatski se oslobađaju kako bi se izbegli curenja memorije.

U Go, sakupljač smeća radi paralelno sa izvršavanjem programa i periodično ga za kratko vreme zaustavlja radi analize i čišćenja neupotrebljenih objekata. Ovo omogućava programeru da ne brine o ručnom oslobađanju memorije, kao u jezicima sa ručnim upravljanjem memorijom.

Primer:

package main

import "fmt"

func main() {
    data := make([]int, 1000000) // dodela memorije
    fmt.Println(len(data))
    // Nakon izlaska iz main, ako na data nema referenci, memorija će automatski biti oslobođena od strane sakupljača smeća
}