Yığın ve Yığın Arasındaki Fark

Yazar: Laura McKinney
Yaratılış Tarihi: 1 Nisan 2021
Güncelleme Tarihi: 13 Mayıs Ayı 2024
Anonim
C# OOP Heap Stack Kavramları
Video: C# OOP Heap Stack Kavramları

İçerik


Yığın ve Öbek, bellek ayırma tekniklerinde kullanılan bellek bölümleridir. Yığın ile yığın arasındaki birincil fark, yığının statik bellek tahsisinde kullanılan belleğin doğrusal ve sıralı olarak tahsis edilmesini içermesidir; yığın ise, belleği rasgele tahsis eden bir depolama alanı havuzu (Dinamik bellek tahsisi) görevi görür.

Hız, yığını ve yığını ayırt eden ana parametredir; Bir yığın, bir yığından önemli ölçüde daha hızlıdır.

  1. Karşılaştırma Tablosu
  2. Tanım
  3. Anahtar Farklılıklar
  4. Sonuç

Karşılaştırma Tablosu

Karşılaştırma için temelyığınYığın
TemelBellek (LIFO) 'da ayrılmıştır. İlk giren ilk moda.Hafıza rastgele sırada tahsis edilir.
Tahsis ve AyrılmaOtomatikManuel
MaliyetAzDaha
uygulamaZorKolay
çağıranO (N)O (1)
KonuHafıza yetersizliğiHafıza parçalanması
Referansın bulunduğu yerMükemmelYeterli
EsneklikSabit boyut ve esnek değilYeniden boyutlandırma mümkündür
Erişim süresiDaha hızlıYavaş


Stack'un tanımı

Yığın tahsisi, push ve pop işlemi yardımı ile işlemlere hafızayı atamak için bir LIFO (ilk giren ilk) stratejisini takip eder. Hafızadaki her blok, genişletilemeyen veya daraltılamayan sabit boyuttadır. Yığındaki son girişe her an erişilebilir. Yığın, taban tabanı olarak adlandırılan bir işaretçinin, yığının ilk girişine ve yığının üstüne olarak adlandırılan başka bir işaretçinin yığının en son girişine işaret ettiği bitişik bir belleği kullanır.

Yığın ayrıca işlev çağrılarını da destekler. Bir işlev çağrısı yığın girişleri koleksiyonunu tutabilir, yığın çerçevesi olarak bilinir. Yığın çerçevenin bir başka adı, program derlemesi sırasında kullanılan verileri depoladığı için, derleyicinin conundaki aktivasyon kaydıdır. Bir işlev çağrıldığında, yığın çerçevesi yığın içine itilir.

Bir yığın çerçeve, işlevin parametresinin adreslerinden veya değerlerinden ve işlevin yerine getirilmesinden sonra kontrolün nereye döndürülmesi gerektiğini gösteren geri dönüş adresinden oluşur.


Heap'un tanımı

Yığın tahsisi kesin bir yaklaşımı takip etmez; bunun yerine rasgele atama ve hafızanın atanmasına izin verir. Bir işlem tarafından yapılan bir atama isteği, bir yığındaki ayrılmış hafıza alanına bir işaretçi ile geri döner ve işlem, ayrılmış bellek alanına işaretçiden erişir.

Ayrılma, hafızanın otomatik olarak ayrıldığı yığına benzer şekilde, ayrılma isteği yoluyla gerçekleştirilir. Veri yapıları oluşturulduğunda ve serbest bırakıldığında yığın, bellek tahsisinde delikler geliştirir. Çalışma zamanında kullanılır.

  1. Bir yığında, tahsis ve tahsisat işlemcisi CPU tarafından yapılır ve otomatiktir, oysa yığında programcı tarafından manuel olarak yapılması gerekir.
  2. Yığın çerçeve işleme, yığın çerçeve işlemeye göre daha pahalıdır.
  3. Bir yığının uygulanması karmaşıktır. Karşı olduğu gibi, bir yığının uygulanması basittir.
  4. Yığın içindeki bir işlev çağrısı O (N) zaman alır. Buna karşılık, bir yığın halinde O (1) zaman alır.
  5. Yığın uygulaması temel olarak hafıza yetersizliği probleminden muzdariptir. Aksine, bir yığındaki ana sorun parçalanmadır.
  6. Bir yığın çerçeveye erişim, yığın hafızanın küçük bölgesine sınırlandırıldığı ve her zaman önbelleğe çarptığı için yığıntan daha kolaydır, ancak yığın çerçeveleri bellek boyunca dağılır, böylece bellek erişimi daha fazla önbellek kaybına neden olabilir.
  7. Yığın esnek değildir, ayrılan bellek boyutu değiştirilemez. Öte yandan, bir yığın esnektir ve ayrılan bellek değiştirilebilir.
  8. Bir öbek yığıntan daha uzun zaman alır.

Sonuç

Yığın tahsisi daha hızlı ancak karmaşık. Öte yandan, bir yığın yavaştır, ancak uygulanması bir yığından daha basittir. Yığın yığından daha verimlidir.