Junior — Middle
Ako sa v programovacích jazykoch vykonáva automatické čistenie nepotrebných údajov v pamäti?
sobes.tech AI
Odpoveď od AI
V programovacích jazykoch ako je Go, je automatické spravovanie pamäte realizované pomocou zberača odpadu (Garbage Collector, GC). Zberač odpadu sleduje objekty v pamäti a určuje, ktoré už nie sú programom používané (t.j. na ne nie sú žiadne odkazy). Takéto objekty sú považované za "odpad" a sú automaticky uvoľnené, aby sa predišlo únikom pamäte.
V Go funguje zberač odpadu paralelne s behom programu a periodicky ho na krátku dobu zastaví, aby analyzoval a čistil nepoužívané objekty. To umožňuje vývojárovi nemať starosti s manuálnym uvoľňovaním pamäte, ako v jazykoch s manuálnou správou pamäte.
Príklad:
package main
import "fmt"
func main() {
data := make([]int, 1000000) // alokácia pamäte
fmt.Println(len(data))
// Po opustení main, ak na data nie sú odkazy, bude pamäť automaticky uvoľnená zberačom odpadu
}