Программалоо контекстинде стек жана кучадагы эс тутумду башкаруунун айырмачылыктарын түшүндүрүңүз.
sobes.tech AI
AIден жооп
Programmalaşma zamanı, yaddaş adətən iki əsas üsulla idarə olunur: yığım və yığım sahəsi.
Yığım — bu, yerli dəyişənlər və funksiyaların parametrlərinin saxlandığı yaddaş sahəsidir. O, LIFO (son daxil olan, ilk çıxan) prinsipinə əsaslanır. Yığımda yaddaş avtomatik olaraq funksiyaya daxil olarkən və çıxarkən ayrılır və azad edilir, bu çox sürətli və səmərəlidir. Ancaq, yığımın ölçüsü məhduddur və burada böyük obyektlər və ya dinamik ömrü olan məlumatlar saxlamaq mümkün deyil.
Yığım sahəsi (Heap) — bu, dinamik ayırma üçün yaddaş sahəsidir, burada obyektlər yaradılır və onlara istinadlar olduğu müddətcə yaşayır (Go-da, çöp toplayıcı avtomatik olaraq istifadə olunmayan yaddaşı azad edir). Yığımda yaddaş əl ilə və ya avtomatik olaraq ayrılır və azad edilir, bu yığım sahəsindən daha yavaşdır, amma obyektlərin istənilən ömrü və böyük ölçüsü ilə yaradıla bilər.
Go-da nümunə:
func nümunə() {
x := 10 // dəyişən x yığımda saxlanılır
p := new(int) // yaddaş yığımda ayrılır
*p = 20
}
Burada, x yerli dəyişəndir və yığımda, p isə yığımda yaddaşa işarə edir.
Xülasə:
- Yığım: sürətli ayırma və sərbəst buraxma, məhdud ölçü, yerli məlumatlar.
- Yığım sahəsi: dinamik ayırma, daha böyük ölçü, obyektlərin həyat dövrünün idarə olunması.