Sobes.tech
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
}