在node-memwatch的统计中,estimated_base和current_base是什么意思

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

运行'节点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中 ,他们没有详细描述。

问候,

杰弗里

Memwatch将其结果分成两个阶段。 需要连续10次GC的RECENT_PERIOD和连续120次GC的ANCIENT_PERIOD。

  • estimated_base = 10个连续GC执行后的堆大小。 这是RECENT_PERIOD。
  • current_base = GC之后的堆大小。
  • base min =给定时间段内堆大小logging的最小值。
  • base max =给定时间段内堆大小logging的最大值。

如果你按照这个链接,你将能够检查出代码: Memwatch