Sobes.tech
Junior — Middle

Dasturlash tillarida keraksiz ma'lumotlarni avtomatik tozalash qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

Go kabi dasturlash tillarida, avtomatik xotira tozalash (Garbage Collector, GC) yordamida amalga oshiriladi. Garbage Collector xotirada obyektlarni kuzatib boradi va ularni dastur tomonidan endi ishlatilmayotganligini aniqlaydi (ya'ni, ularga havolalar yo'q). Bunday obyektlar "axlat" deb hisoblanadi va xotira oqib ketmasligini ta'minlash uchun avtomatik ravishda bo'shatiladi.

Go da, garbage collector dastur bajarilishi bilan parallel ishlaydi va uni qisqa vaqt to'xtatib, ishlatilmayotgan obyektlarni tahlil qiladi va tozalaydi. Bu dasturchiga xotirani qo'lda bo'shatish haqida o'ylashni talab qilmaydi, bu esa xotira boshqaruvi qo'lda bo'lgan tillarda bo'lgani kabi, qulaylik yaratadi.

Misol:

package main

import "fmt"

func main() {
    data := make([]int, 1000000) // xotira ajratish
    fmt.Println(len(data))
    // main dan chiqib, agar data ga havola bo'lmasa, xotira avtomatik ravishda garbage collector tomonidan bo'shatiladi
}