CodeBlanks Logo Icon CodeBlanks

Generational GC

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

index.js
// 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

index.js
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

Soru
return survivalCount >= ____;
Cevap
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)?

index.js
function shouldPromote(s) { return s >= 2; }
shouldPromote(1)
  • true
  • 2
  • 1
  • false Doğru cevap

Açıklama: 1 < 2 olduğundan false döner.

Uzman bölümündeki tüm dersler