Node.js
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.
Örnek çözümü göster
function heapLabel(size) {
if (size < 1024) return 'small';
if (size < 1048576) return 'medium';
return 'large';
}
console.log(heapLabel(512));
console.log(heapLabel(2097152));
Kendini test et
-
Parçayı rolüne eşle
- heapUsed
- Kullanılan yığın
- heapTotal
- Ayrılan yığın
- rss
- Resident set size
- external
- C++ nesneleri
-
heapLabel(2097152) ne döndürür?
function heapLabel(s) {
if (s < 1024) return 'small';
if (s < 1048576) return 'medium';
return 'large';
}
heapLabel(2097152)
Cevabı göster
large — 2097152 >= 1048576 olduğundan 'large' döner.
-
Large dalını tamamla
if (size < 1024) return 'small';
if (size < 1048576) return 'medium';
return '____';
Cevabı göster
if (size < 1024) return 'small';
if (size < 1048576) return 'medium';
return 'large';
Sıradaki ders: Benchmark