我使用node-memwatch监视节点应用程序的内存使用情况。简化代码如下
@file test.js
var memwatch = require('memwatch');
var util = require('util');
var leak = [];
setInterval(function() {
leak.push(new Error("leak string"));
}, 1);
memwatch.on('stats', function(stats) {
console.log('MEM watch: ' + JSON.stringify(stats));
console.log('Process: ' + util.inspect(process.memoryUsage()));
});
运行“ node test.js”,我得到下面的输出。
MEM watch: {"num_full_gc":1,"num_inc_gc":6,"heap_compactions":1,"usage_trend":0,"estimated_base":8979176,"current_base":8979176,"min":0,"max":0}
Process: { rss: 28004352, heapTotal: 19646208, heapUsed: 9303856 }
有谁知道estimate_base和current_base是什么意思?在页面https://github.com/lloyd/node-memwatch中,没有详细描述。
问候,
杰弗里
最佳答案
Memwatch将其结果分为两个期间。
RECENT_PERIOD需要10个连续的GC,而ANCIENT_PERIOD是120个连续的GC。
Estimated_base =执行10个连续的GC后的堆大小。这是RECENT_PERIOD。
current_base =刚好在GC之后的堆大小。
base min =给定堆大小的记录的最小值
期。
base max =给定堆大小的记录的最大值
期。
如果您点击此链接,您将可以检出代码:Memwatch
关于node.js - node_memwatch的统计信息中estimated_base和current_base是什么意思,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17171071/