Heap ve stack
- Node.js kursu
- Uzman
- Ders 19/47
- 5 dk
Node.js heap ve stack yönetimini öğrenirsin.
Heap ve stack
Node.js belleği iki bölgeye ayırır: stack (yığın) ve heap (yığın bellek). Stack, ilkel değerleri ve fonksiyon çağrı çerçevelerini tutar; hızlı ve otomatik temizlenir. Heap, nesneleri ve dizileri tutar; çöp toplayıcı tarafından yönetilir.
Bir classifyAllocation(type) fonksiyonu bu ayrımı modeller: 'primitive' ise 'stack', değilse 'heap' döndürür. Örnek: classifyAllocation('primitive') 'stack', classifyAllocation('object') 'heap' döndürür. Stack LIFO (son giren ilk çıkar) ile çalışır; fonksiyon döndüğünde çerçevesi hemen kaldırılır. Heap'teki nesneler ise hiçbir başvuru kalmayana kadar yaşar; sonra çöp toplayıcı onları toplar. Bu ayrım, bellek sızıntılarını anlamak için temeldir.
Stack davranışı
Stack, fonksiyon çağrılarıyla büyür ve küçülür. Bir fonksiyon çağrıldığında çerçevesi (parametreler, yerel değişkenler) stack'e eklenir; döndüğünde çıkarılır. Bu, otomatik ve hızlıdır; çöp toplama gerektirmez.
Örnek: function add(a, b) { return a + b; } çağrıldığında a, b ve dönüş adresi stack'e konur. Fonksiyon bitince bunlar kaldırılır. classifyAllocation('primitive') 'stack' döndürür çünkü ilkel değerler (sayı, dize, boolean) stack'te yaşar. classifyAllocation('object') 'heap' döndürür çünkü nesneler heap'te yaşar. Bu ayrım, hangi değerlerin çöp toplamaya girdiğini belirler. Stack temizliği anlıktır; heap temizliği gecikmeli olabilir.
Uygulama Bölge sınıflandırıcı yaz
function classifyAllocation(type) yaz. return type === 'primitive' ? 'stack' : 'heap' ile döndür. console.log(classifyAllocation('primitive')) ve console.log(classifyAllocation('object')) yazdır.
Başlangıç kodu
// classifyAllocation fonksiyonu yaz
// ilkel tür ise stack, değilse heap döndür
// iki çağrıyı yazdır
// buraya yazÖrnek çözüm
function classifyAllocation(type) {
return type === 'primitive' ? 'stack' : 'heap';
}
console.log(classifyAllocation('primitive'));
console.log(classifyAllocation('object'));Beklenen çıktı
stack heap
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir nesne (object) hangi bölgede tutulur?
- Stack
- Heap Doğru cevap
- Yok
- Her ikisi
Açıklama: Nesneler heap'te tutulur, çöp toplayıcı yönetir.
2 stack değerini döndür
return type === 'primitive' ? '____' : 'heap';
return type === 'primitive' ? 'stack' : 'heap';
Açıklama: İlkel türler stack'te tutulur.
3 Kavramı açıklamasına eşle
| Kavram | Anlamı |
|---|---|
Stack |
İlkel değerler ve çerçeveler |
Heap |
Nesneler ve diziler |
LIFO |
Son giren ilk çıkar |
Çöp toplayıcı |
Heap'i temizler |