Junior — Middle
Kuidas toimub tarbetute andmete automaatne puhastamine programmeerimiskeeltes?
sobes.tech AI
Vastus AI-lt
Programmeerimiskeeltes nagu Go, on automaatne mäluhaldus teostatud prügikoristaja (Garbage Collector, GC) abil. Prügikoristaja jälgib mälus olevaid objekte ja määrab, millised neist ei ole enam programmi kasutuses (st. millele ei ole viiteid). Sellised objektid loetakse "prügiks" ja vabastatakse automaatselt, et vältida mälulekkeid.
Go-s töötab prügikoristaja paralleelselt programmi täitmisega ning peatub perioodiliselt lühikeseks ajaks, et analüüsida ja puhastada kasutamata objekte. See võimaldab arendajal mitte muretseda käsitsi mälu vabastamise pärast, nagu see on käsitsi mäluhalduse keeltes.
Näide:
package main
import "fmt"
func main() {
data := make([]int, 1000000) // mälu eraldamine
fmt.Println(len(data))
// Pärast main-st väljumist, kui data-le ei viidata, vabastab prügikoristaja mälu automaatselt
}