Memory profiling
- Node.js kursu
- Uzman
- Ders 39/47
- 5 dk
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
// 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
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?
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
if (size < 1024) return 'small';
if (size < 1048576) return 'medium';
return '____';
if (size < 1024) return 'small';
if (size < 1048576) return 'medium';
return 'large';
Açıklama: Üst eşik geçilince 'large' döner.