Generational GC
- Node.js kursu
- Uzman
- Ders 20/47
- 5 dk
Generational GC ve Scavenge öğrenirsin.
Generational GC
Generational garbage collection, nesneleri yaşa göre iki kuşağa ayırır: young (genç) ve old (yaşlı). Yeni nesneler young kuşakta başlar; birkaç toplama döngüsünden sağ çıkanlar old kuşağa terfi eder. Young kuşak sık toplanır, old kuşak seyrek.
Bir shouldPromote(survivalCount) fonksiyonu terfi kararını modeller: sağ kalma sayısı 2 veya fazlaysa true döndürür. Örnek: shouldPromote(1) false, shouldPromote(3) true. Bu, V8'in bir nesneyi young'tan old'a ne zaman taşıdığını basit bir eşikle anlatır. Gerçek V8'de eşik daha karmaşıktır ama fikir aynıdır: sık sağ çıkan nesneler terfi eder, seyrek toplanan old kuşağa geçer. Bu, çöp toplama maliyetini azaltır.
Sağ kalma sayısı
Bir nesnenin sağ kalma sayısı (survival count), kaç çöp toplama döngüsünden çıkmış olduğunu belirtir. Her döngüde sağ çıkan nesnenin sayısı artar; eşik geçilince old kuşağa terfi eder. Bu, sıcak verilerin hızlı toplanan young kuşakta kalmamasını sağlar.
Örnek: shouldPromote(1) false döndürür; nesne henüz young kuşakta. shouldPromote(3) true döndürür; nesne old kuşağa terfi eder. Bu model, generational GC'nin temel mantığını basit bir karşılaştırmayla gösterir: survivalCount >= 2. Old kuşakta nesneler daha uzun yaşar ve daha seyrek toplanır; bu, genel çöp toplama verimini artırır. Çoğu nesne young kuşakta ölür; bu yüzden young toplama hızlıdır.
Uygulama Terfi fonksiyonu yaz
function shouldPromote(survivalCount) yaz. return survivalCount >= 2 ile döndür. console.log(shouldPromote(1)) ve console.log(shouldPromote(3)) yazdır.
Başlangıç kodu
// shouldPromote fonksiyonu yaz
// sağ kalma sayısı 2 veya fazlaysa true döndür
// iki çağrıyı yazdır (1 ve 3)
// buraya yazÖrnek çözüm
function shouldPromote(survivalCount) {
return survivalCount >= 2;
}
console.log(shouldPromote(1));
console.log(shouldPromote(3));Beklenen çıktı
false true
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 terfi eşiğini tamamla
return survivalCount >= ____;
return survivalCount >= 2;
Açıklama: 2 veya daha fazla sağ kalma terfi eder.
2 Kavramı açıklamasına eşle
| Kavram | Anlamı |
|---|---|
Young kuşak |
Yeni nesneler |
Old kuşak |
Sağ kalan nesneler |
Survival count |
Sağ kalma sayısı |
shouldPromote |
Terfi kararı |
3 shouldPromote(1) ne döndürür (eşik 2)?
function shouldPromote(s) { return s >= 2; }
shouldPromote(1)- true
- 2
- 1
- false Doğru cevap
Açıklama: 1 < 2 olduğundan false döner.