Sobes.tech
Junior — Middle

Proqramlaşdırma kontekstində yığın və yığımda yaddaş idarəetməsinin fərqlərini izah edin.

sobes.tech Süni İntellekt

AI-dan cavab

Proqramlaşdırmada yaddaş adətən iki əsas üsulla idarə olunur: yığım və yığım sahəsi.

Yığım — bu, yerli dəyişənlərin 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ı istifadə olunmayan yaddaşı avtomatik olaraq 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ə azad etmə, məhdud ölçü, yerli məlumatlar.
  • Yığım sahəsi: dinamik ayırma, daha böyük ölçü, obyektlərin ömrünü idarə etmək.