Yığın nedir?
Yığın, bir işlev tarafından oluşturulan geçici değişkenleri depolayan bilgisayar belleğinin özel bir alanıdır. Yığın içinde değişkenler çalışma zamanı sırasında bildirilir, depolanır ve başlatılır.
Geçici bir depolama hafızasıdır. Hesaplama görevi tamamlandığında, değişkenin belleği otomatik olarak silinecektir. Yığın bölümü çoğunlukla yöntemleri, yerel değişkenleri ve başvuru değişkenlerini içerir.
Bu eğitimde öğreneceksiniz,
- Stack nedir?
- Yığın nedir?
- Yığın ve Yığın arasındaki Temel Farklılıklar
- Stack kullanmanın avantajları
- Heap kullanmanın avantajları
- Stack kullanmanın dezavantajları
- Yığın kullanmanın dezavantajları
- Yığın veya yığın ne zaman kullanılır?
Yığın nedir?
Yığın, programlama dilleri tarafından global değişkenleri depolamak için kullanılan bir bellektir. Varsayılan olarak, tüm global değişkenler yığın bellek alanında saklanır. Dinamik bellek tahsisini destekler.
Yığın sizin için otomatik olarak yönetilmez ve CPU tarafından sıkı bir şekilde yönetilmez. Daha çok serbestçe yüzen bir bellek bölgesi gibidir.
ANAHTAR FARK
- Yığın doğrusal bir veri yapısıdır, öbek ise hiyerarşik bir veri yapısıdır.
- Yığın bellek hiçbir zaman parçalanmaz, öte yandan Yığın bellek, bellek blokları önce tahsis edilip sonra serbest bırakıldıkça parçalanır.
- Yığın, yerel değişkenlere yalnızca Heap değişkenlere global olarak erişmenize izin verirken erişir.
- Yığın değişkenleri yeniden boyutlandırılamazken Yığın değişkenleri yeniden boyutlandırılabilir.
- Yığın belleği bitişik bir blokta tahsis edilirken, Yığın belleği herhangi bir rastgele sırayla tahsis edilir.
- Yığın, değişkenlerin ayrılmasını gerektirmez, oysa Yığın'da ayırmanın kaldırılması gerekir.
- Yığın tahsisi ve serbest bırakma, derleyici talimatları ile yapılırken Yığın tahsisi ve serbest bırakılması programcı tarafından yapılır.
Yığın ve Yığın arasındaki Temel Farklılıklar
Parametre | Yığın | Yığın |
---|---|---|
Veri yapılarının türü | Yığın, doğrusal bir veri yapısıdır. | Yığın, hiyerarşik bir veri yapısıdır. |
Erişim hızı | Yüksek hızlı erişim | Yığına kıyasla daha yavaş |
Alan yönetimi | Alan, işletim sistemi tarafından verimli bir şekilde yönetilir, böylece bellek asla parçalanmaz. | Yığın Alanı verimli kullanılmaz. Bellek, bellek blokları önce tahsis edildikten sonra serbest bırakıldıkça parçalanabilir. |
Giriş | Yalnızca yerel değişkenler | Değişkenlere global olarak erişmenizi sağlar. |
Alan boyutu sınırı | İşletim sistemine bağlı olarak yığın boyutu sınırı. | Bellek boyutunda belirli bir sınırlama yoktur. |
Yeniden boyutlandır | Değişkenler yeniden boyutlandırılamaz | Değişkenler yeniden boyutlandırılabilir. |
Hafıza Tahsisi | Bellek, bitişik bir blokta tahsis edilir. | Hafıza herhangi bir rastgele sırayla tahsis edilir. |
Tahsis ve Tahsisin Kaldırılması | Derleyici talimatları ile otomatik olarak yapılır. | Programcı tarafından manuel olarak yapılır. |
Tahsisat iptali | Değişkenlerin ayrılmasını gerektirmez. | Açık bir şekilde tahsisin kaldırılması gereklidir. |
Maliyet | Az | Daha |
Uygulama | Bir yığın, dinamik bellek kullanılarak basit dizi tabanlı ve bağlantılı liste tabanlı 3 şekilde uygulanabilir. | Yığın, dizi ve ağaçlar kullanılarak gerçekleştirilebilir. |
Ana mesele | Hafıza yetersizliği | Bellek parçalanması |
Başvuru yeri | Otomatik derleme zamanı talimatları. | Yeterli |
Esneklik | Sabit boyut | Yeniden boyutlandırma mümkündür |
Erişim süresi | Daha hızlı | Yavaş |
Stack kullanmanın avantajları
İşte yığın kullanmanın avantajları / faydaları:
- Bağlı liste ve dizi ile mümkün olmayan Son Giren İlk Çıkar (LIFO) yönteminde verileri yönetmenize yardımcı olur.
- Bir işlev çağrıldığında, yerel değişkenler bir yığında saklanır ve döndürüldüğünde otomatik olarak yok edilir.
- Bir değişken, bu fonksiyonun dışında kullanılmadığında bir yığın kullanılır.
- Belleğin nasıl tahsis edileceğini ve ayrılacağını kontrol etmenizi sağlar.
- Yığın, nesneyi otomatik olarak temizler.
- Kolayca bozulmaz
- Değişkenler yeniden boyutlandırılamaz.
Heap kullanmanın avantajları
Yığın bellek kullanmanın avantajları / faydaları şunlardır:
- Yığın, en büyük ve minimum sayıyı bulmanıza yardımcı olur
- Çöp toplama, nesne tarafından kullanılan belleği boşaltmak için yığın belleğinde çalışır.
- Heap yöntemi, Priority Queue'da da kullanılır.
- Değişkenlere global olarak erişmenizi sağlar.
- Yığın bellek boyutunda herhangi bir sınırlamaya sahip değildir.
Stack kullanmanın dezavantajları
Yığın bellek kullanmanın eksileri / sakıncaları şunlardır:
- Yığın belleği çok sınırlıdır.
- Yığın üzerinde çok fazla nesne oluşturmak, yığın taşması riskini artırabilir.
- Rastgele erişim mümkün değildir.
- Değişken depolamanın üzerine yazılır, bu da bazen işlevin veya programın tanımsız davranışına yol açar.
- Yığın bellek alanının dışına düşecek ve bu da anormal bir sonlandırmaya neden olabilir.
Yığın kullanmanın dezavantajları
Yığın bellek kullanmanın eksileri / sakıncaları şunlardır:
- Bir işletim sisteminin sağlayabileceği maksimum belleği sağlayabilir
- Hesaplamak daha uzun sürer.
- Bellek yönetimi, küresel olarak kullanıldığı için yığın bellekte daha karmaşıktır.
- Yığına kıyasla yürütmede çok fazla zaman alıyor.
Yığın veya yığın ne zaman kullanılır?
Büyük bir bellek bloğu ayırmanız gerektiğinde heap kullanmalısınız. Örneğin, bu değişkeni uzun süre tutmak için büyük boyutlu bir dizi veya büyük bir yapı oluşturmak istiyorsanız, onu yığın üzerine ayırmalısınız.
Ancak, yalnızca onları kullanan işlev canlı olana kadar gerekli olan nispeten küçük değişkenlerle çalışıyorsanız. O zaman daha hızlı ve daha kolay olan yığını kullanmanız gerekir.