CodeBlanks Logo Icon CodeBlanks

Memory profiling

Memory profiling ve heap analysis öğrenirsin.

Memory profiling

Memory profiling (bellek profilleme), Node.js sürecinin yığın (heap) kullanımını inceler. process.memoryUsage() anahtar göstergeyi verir: heapUsed, heapTotal, rss ve external. Bu değerler zaman içinde büyürse bellek sızıntısı olabilir.

Bir heapLabel(size) fonksiyonu bu analizi modeller: boyut 1024'ten küçükse 'small', 1048576'tan küçükse 'medium', yoksa 'large' döndürür. heapLabel(512) 'small', heapLabel(2097152) 'large' döner. Bu, bellek büyüklüğünü üç kategoride sınıflandırır; gerçek profilleme araçları (heap snapshot, --inspect) ayrıntılı nesne grafiği verir. Bu model, darboğazın hangi büyüklük aralığında olduğunu hızlıca görmeni sağlar.

Yığın etiketleri

Yığın büyüklüğünü üç kategoride sınıflandırmak, profilleme çıktısını hızlı yorumlamayı sağlar. 'small' sağlıklı, 'medium' izlenmeli, 'large' ise müdahale gerektirebilir. Bu etiketler gerçek bir profilleyicinin sonuçlarını özetler.

Örnek: heapLabel(512) 'small' döner; heapLabel(50000) 'medium' döner; heapLabel(2097152) 'large' döner. Üç eşik (1024, 1048576 ve üzeri) bu ayrımı yapar. Gerçek profillemede yığın anlık görüntüsü (heap snapshot) her nesne türünü ve tutulan bayt sayısını gösterir. Bu basit model, hangi aralıkta olduğunuzu hızlıca gösterir; ardından ayrıntılı görüntüye geçebilirsin.

Uygulama Heap etiket fonksiyonu yaz

function heapLabel(size) yaz. if (size < 1024) return 'small';, if (size < 1048576) return 'medium'; ve return 'large'; ekle. console.log(heapLabel(512)) ve console.log(heapLabel(2097152)) yazdır.

Başlangıç kodu

index.js
// heapLabel fonksiyonu yaz
// boyut 1024'ten küçükse 'small', 1048576'tan küçükse 'medium', yoksa 'large' döndürsün
// 512 ve 2097152 çağrılarını yazdır
// buraya yaz

Örnek çözüm

index.js
function heapLabel(size) {
  if (size < 1024) return 'small';
  if (size < 1048576) return 'medium';
  return 'large';
}
console.log(heapLabel(512));
console.log(heapLabel(2097152));

Beklenen çıktı

small
large

Soru ve cevaplar

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

1 Parçayı rolüne eşle

Kavram Anlamı
heapUsed Kullanılan yığın
heapTotal Ayrılan yığın
rss Resident set size
external C++ nesneleri

2 heapLabel(2097152) ne döndürür?

index.js
function heapLabel(s) {
  if (s < 1024) return 'small';
  if (s < 1048576) return 'medium';
  return 'large';
}
heapLabel(2097152)
  • small
  • medium
  • large Doğru cevap
  • 0

Açıklama: 2097152 >= 1048576 olduğundan 'large' döner.

3 Large dalını tamamla

Soru
if (size < 1024) return 'small';
if (size < 1048576) return 'medium';
return '____';
Cevap
if (size < 1024) return 'small';
if (size < 1048576) return 'medium';
return 'large';

Açıklama: Üst eşik geçilince 'large' döner.

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