CodeBlanks Logo Icon CodeBlanks

Garbage collection

V8 garbage collection ve generational GC öğrenirsin.

Garbage collection

V8 generational garbage collection (kuşaklı çöp toplama) kullanır. Yeni nesneler young (genç) kuşakta başlar; birkaç çöp toplama döngüsünden sağ çıkanlar old (yaşlı) kuşağa terfi eder. Genç kuşak sık ve hızlı toplanır; yaşlı kuşak daha seyrek ve daha kapsamlı toplanır.

Bir nesnenin hangi kuşakta olduğunu yaşına göre modelleyebiliriz: gcGeneration(ageMs). PROMOTION_AGE eşiğini geçen nesneler 'old', geçmeyenler 'young' kuşakta sayılır. Örnek: gcGeneration(100) 'young', gcGeneration(5000) 'old' döndürür. Bu, V8'in terfi mantığını basit bir modelle anlamanı sağlar. Gerçek V8'de kuşaklar daha karmaşık (Scavenger, mark-sweep) ama temel fikir budur.

Terfi eşiği

Bu derste gcGeneration fonksiyonunu yazacağız. PROMOTION_AGE sabitini tanımlar, ternary operatörüyle yaşın eşiği geçip geçmediğini denetleriz. Geçiyorsa 'old', geçmiyorsa 'young' döndürülür.

Örnek: const PROMOTION_AGE = 2000; function gcGeneration(ageMs) { return ageMs >= PROMOTION_AGE ? 'old' : 'young'; }. gcGeneration(100) 'young', gcGeneration(5000) 'old' döndürür. Ternary koşul ? doğru : yanlış biçimindedir; if/else'nin kısa yazımıdır. Bu model, V8'in kuşak terfisini yaşla ilişkilendirir ve deterministik çıktı verir.

Uygulama GC kuşak fonksiyonu yaz

const PROMOTION_AGE = 2000 tanımla. function gcGeneration(ageMs) { return ageMs >= PROMOTION_AGE ? 'old' : 'young'; } yaz. console.log(gcGeneration(100)) ve console.log(gcGeneration(5000)) yazdır.

Başlangıç kodu

index.js
// terfi eşik sabitini tanımla
// gcGeneration fonksiyonu yaz: yaş eşiği geçiyorsa 'old', değilse 'young'
// iki çağrıyı yazdır (100 ve 5000)
// buraya yaz

Örnek çözüm

index.js
const PROMOTION_AGE = 2000;
function gcGeneration(ageMs) {
  return ageMs >= PROMOTION_AGE ? 'old' : 'young';
}
console.log(gcGeneration(100));
console.log(gcGeneration(5000));

Beklenen çıktı

young
old

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Young kuşaktan old kuşağa ne zaman terfi edilir?

  • Birkaç GC döngüsünden sağ çıkınca Doğru cevap
  • Hemen
  • Asla
  • Sadece hata durumunda

Açıklama: Sağ kalan nesneler old kuşağa terfi eder.

2 Ternary ifadesini tamamla

Soru
return ageMs >= PROMOTION_AGE ? '____' : 'young';
Cevap
return ageMs >= PROMOTION_AGE ? 'old' : 'young';

Açıklama: Eşik geçilince 'old' döner.

3 Kavramı açıklamasına eşle

Kavram Anlamı
Young kuşak Yeni nesneler
Old kuşak Sağ kalan nesneler
PROMOTION_AGE Terfi eşiği
Ternary Koşullu ifade

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