Junior — Middle
Чӣ гуна равандҳои озодкунии хотираи баргардондашуда дар дохили системаи амалишавӣ мешаванд?
sobes.tech AI
Ҷавоб аз AI
Дар Go, раванди озод кардани хотира тавассути ҷамъкунандаи партов (Garbage Collector) амалӣ мешавад. Он автоматӣ объектҳои дар хотираро, ки дигар аз ҷониби барнома истифода намешаванд, пайгирӣ мекунад ва онҳоро озод мекунад.
Қадамҳои асосии ҷамъкунандаи партов:
- Нишонгузорӣ (Mark) — ҷамъкунанда ҳама истинодҳои фаъолро мегузарад ва объектҳои дастрасро нишон медиҳад.
- Тоза кардан (Sweep) — объектҳое, ки нишон дода нашудаанд, ҳамчун ғайриқобили истифода ҳисоб мешаванд ва озод карда мешаванд.
Ин дар пасзамина рӯй медиҳад, бидуни он ки таҳиягар бояд ба хотира идоракунии дастӣ кунад, ки ин хатогиҳоро, ба монанди сӯроқҳои хотира ё озодкунии дукарата, кам мекунад.
Масалан дар Go барои истифодаи хотира:
package main
import "fmt"
func main() {
data := make([]int, 1000000) // тақсимоти хотира
fmt.Println(len(data))
// Пас аз баромадан аз функсия, data дастрас нест ва аз ҷониби ҷамъкунандаи партов тоза мешавад
}
Ин ҷо, хотираи срези data автоматӣ озод мешавад, вақте ки ба он дигар истинод намеёбад.