Heap snapshot
- Node.js kursu
- Uzman
- Ders 23/47
- 5 dk
Heap snapshot ve analiz öğrenirsin.
Heap snapshot
Bir heap snapshot, belirli bir anda heap'teki tüm nesnelerin ve aralarındaki başvuruların bir görüntüsüdür. Node.js, --inspect ile V8'in heap snapshot'ını almanı sağlar. Bu, bellek sızıntılarını görsel olarak bulmanın yoludur.
Bir heapSnapshot(objects) fonksiyonu bunu modeller: her nesnenin adını ve boyutunu 'ad:boyut' biçiminde bir dizeye çevirir. objects.map(o => o.name + ':' + o.size) ile her nesne dönüştürülür; .join(';') ile tek dize yapılır. Örnek: heapSnapshot([{name: 'a', size: 10}, {name: 'b', size: 20}]) 'a:10;b:20' döndürür. Bu model, bir heap snapshot'ın nasıl bir liste ürettiğini gösterir: her nesne ad ve boyutla kaydedilir. Çıktı deterministiktir.
Nesne listesi
Heap snapshot, nesneleri ad ve boyutlarıyla listeler. map her nesneyi 'ad:boyut' dizesine çevirir; join bunları birleştirir. Bu, snapshot'ın metin karşılığını üretir.
Örnek: [{name: 'a', size: 10}, {name: 'b', size: 20}] dizisi. .map(o => o.name + ':' + o.size) ['a:10', 'b:20'] verir. .join(';') ile 'a:10;b:20' olur. console.log(heapSnapshot([...])) a:10;b:20 yazdırır. Gerçek bir heap snapshot çok daha fazla veri içerir (başvurular, türler) ama bu model, snapshot'ın özünü — nesneleri ve boyutlarını listelemeyi — gösterir. Çıktı deterministiktir; aynı nesneler her zaman aynı dizeyi üretir.
Uygulama Heap snapshot fonksiyonu yaz
function heapSnapshot(objects) yaz. return objects.map(o => o.name + ':' + o.size).join(';') ile döndür. console.log(heapSnapshot([{name: 'a', size: 10}, {name: 'b', size: 20}])) yazdır.
Başlangıç kodu
// heapSnapshot fonksiyonu yaz
// her nesnenin ad ve boyutunu 'ad:boyut' yap
// ';' ile birleştir ve döndür
// [{name:'a',size:10},{name:'b',size:20}] ile çağır
// buraya yazÖrnek çözüm
function heapSnapshot(objects) {
return objects.map(o => o.name + ':' + o.size).join(';');
}
console.log(heapSnapshot([{name: 'a', size: 10}, {name: 'b', size: 20}]));Beklenen çıktı
a:10;b:20
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 map çağrısını tamamla
return objects.____(o => o.name + ':' + o.size).join(';');
return objects.map(o => o.name + ':' + o.size).join(';');
Açıklama: map her nesneyi 'ad:boyut' dizesine çevirir.
2 heapSnapshot([{name:'a',size:10}]) ne döndürür?
heapSnapshot([{name:'a',size:10}])- 'a'
- '10'
- 'a=10'
- 'a:10' Doğru cevap
Açıklama: map 'a:10' üretir, join tek öğeyi olduğu gibi bırakır.
3 Kavramı açıklamasına eşle
| Kavram | Anlamı |
|---|---|
Heap snapshot |
Heap'in görüntüsü |
map |
Her nesneyi dönüştürür |
join |
Diziyi dizeye birleştirir |
--inspect |
Snapshot aracı |