Bagaimana cara memantau penggunaan memori Node.js?
javascript
node.js
memory
fsiaonma.dll
sumber
sumber
Jawaban:
node-memwatch : mendeteksi dan menemukan kebocoran memori dalam kode Node.JS. Periksa tutorial ini Melacak Kebocoran Memori di Node.js
sumber
Built-in proses modul memiliki metode
memoryUsage
yang menawarkan wawasan dalam penggunaan memori dari proses Node.js saat ini. Berikut adalah contoh dari Node v0.12.2 pada sistem 64-bit:Dalam contoh sederhana ini, Anda dapat melihat bahwa mengalokasikan array 10 juta elemen konsumen sekitar 80MB (lihatlah
heapUsed
).Jika Anda melihat kode sumber V8 (
Array::New
,Heap::AllocateRawFixedArray
,FixedArray::SizeFor
), maka Anda akan melihat bahwa memori yang digunakan oleh sebuah array adalah nilai tetap ditambah panjang dikalikan dengan ukuran pointer. Yang terakhir adalah 8 byte pada sistem 64-bit, yang menegaskan bahwa perbedaan memori yang diamati sebesar 8 x 10 = 80MB masuk akal.sumber
--expose-gc
untukgc
fungsi?--expose-gc
untukprocess.memoryUsage()
.gc()
(membutuhkan--expose-gc
) digunakan dalam jawaban untuk secara deterministik memicu pengumpulan sampah agar lebih mudah untuk melihat apa yangprocess.memoryUsage
dilaporkan.Juga, jika Anda ingin mengetahui memori global daripada proses node ':
Lihat dokumentasi
sumber
Memwatch asli pada dasarnya sudah mati. Cobalah memwatch-next sebagai gantinya, yang tampaknya berfungsi dengan baik pada Node versi modern.
sumber
Di Linux / Unix (catatan: Mac OS adalah Unix) gunakan
top
dan tekan M ( Shift+M ) untuk mengurutkan proses berdasarkan penggunaan memori.Di Windows gunakan Task Manager.
sumber
Applications > Utilities
dan Anda akan menemukan sebuahActivity Monitor
aplikasi. Yang itu setara dengan Task Manager. OS X juga memilikitop
perintahnya.htop
sebagai ganti top di Linux. Jauh lebih baik.