Tôi đang tìm cách đa nền tảng để theo dõi đáng tin cậy mức tiêu thụ bộ nhớ tối đa trong quy trình Node.js, bất kể có rò rỉ hay không.Theo dõi mức tiêu thụ bộ nhớ tối đa trong quy trình Node.js
Các quy trình trong trường hợp của tôi là cả ứng dụng thực và thử nghiệm tổng hợp.
Tôi mong chờ nó làm việc như
process.on('exit',() => {
console.log('Max memory consumption: ' + ...);
});
Đó là khả năng để theo dõi mức tiêu thụ bộ nhớ bằng cách nào đó với node --trace_gc ...
, nhưng điều này dẫn đến sản lượng đó là khó đọc (và có lẽ khó có thể phân tích theo chương trình). Ngoài ra, GC không xảy ra khi tập lệnh kết thúc quá nhanh, ngay cả khi sử dụng RAM là đáng kể.
Từ những gì tôi đã thấy về đề tài này, thường memwatch
là gợi ý cho rằng, giống như:
require('memwatch-next').on('stats', stats => {
console.log('Max memory consumption: ' + stats.max);
});
Nhưng trong trường hợp của tôi nó chỉ kích hoạt khi GC đã xảy ra hoặc không kích hoạt ở tất cả, vì vậy nó là vô ích khi xác định mức tiêu thụ RAM.
Tôi muốn tránh các công cụ GUI như node-inspector
nếu có thể.
Mức tiêu thụ bộ nhớ tối đa này có thể được truy xuất một cách đáng tin cậy dưới dạng số từ bản thân ứng dụng hoặc CLI, đa nền tảng không?
Giải pháp của tôi có phải là crossplatform khi bạn cần nó không? – EMX
@EMX Thực ra, vâng, cảm ơn, có vẻ như tôi cần. pidusage có vẻ là crossplatform. Tôi sẽ thử. – estus
Tuyệt vời, hy vọng nó giải quyết câu hỏi của bạn theo cách bạn cần :) – EMX