estimated_base和current_base在node-memwatch的统计信息中意味着什么

时间:2013-06-18 14:07:31

标签: node.js memory

我使用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 }

有谁知道estimated_base和current_base是什么意思?在页面https://github.com/lloyd/node-memwatch中,没有详细描述它们。

此致

杰弗里

1 个答案:

答案 0 :(得分:1)

Memwatch将其结果拆分为两个时段。 RECENT_PERIOD需要10个连续的GC和ANCIENT_PERIOD,即120个连续的GC。

  • estimated_base =已执行10个连续GC后的堆大小。这是RECENT_PERIOD。
  • current_base =正好在GC之后的堆大小。
  • base min =为给定的堆大小记录的最小值 周期。
  • base max =为给定的堆大小记录的最大值 周期。

如果您点击此链接,则可以查看代码:Memwatch