Garbage collection
- Node.js kursu
- Uzman
- Ders 4/47
- 5 dk
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
// 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
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
return ageMs >= PROMOTION_AGE ? '____' : 'young';
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 |