CodeBlanks Logo Icon CodeBlanks

Heap snapshot

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

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

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

Soru
return objects.____(o => o.name + ':' + o.size).join(';');
Cevap
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?

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

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