【问题标题】:How do I understand the node-memwatch stats data?我如何理解 node-memwatch 统计数据?
【发布时间】:2015-01-25 23:25:00
【问题描述】:
{
  "num_full_gc": 17,
  "num_inc_gc": 8,
  "heap_compactions": 8,
  "estimated_base": 2592568,
  "current_base": 2592568,
  "min": 2499912,
  "max": 2592568,
  "usage_trend": 0
}

它来自 memwatch nodejs 库:

https://github.com/lloyd/node-memwatch#heap-usage

其中哪一项代表脚本使用的内存?其他人是什么意思? github页面并没有真正解释它。

【问题讨论】:

  • 在您复制的图表的正下方: > 如果使用趋势始终为正,则表明您的基堆大小在不断增长,您可能存在泄漏

标签: javascript node.js v8 node-memwatch


【解决方案1】:

gcstats 的整个目标是提供比堆的 RSS 大小的简单采样更有意义的内存使用指标。以下是上述输出字段的含义:

  • num_full_gc 是自第一次需要 gcstats 以来发生的完整标记和清除垃圾收集运行的数量。
  • num_inc_gc 是 V8 执行增量垃圾回收的次数,在 V8 中称为 scavenge GC。
  • heap_compactions 是在完整 GC 之后,V8 实际压缩堆并释放分配的内存的次数。
  • usage_trend 是一个有符号的幻数,它告诉您堆中最近的百分比变化。这个数字将在后面介绍。
  • estimated_base 是对您的程序使用的最小 JavaScript 堆内存量的估计。也就是说,在过去的几次堆压缩中,堆平均缩小到多小。
  • 分钟,您的进程使用的最小内存量是多少。
  • ma​​x 与上述相同,但为最大值。

感谢劳埃德·希莱尔 - http://lloyd.io/is-my-nodejs-program-leaking

【讨论】:

    【解决方案2】:

    嗯,其中四个代表脚本使用的内存量。我认为“current_base”很可能是您想要的那个;我相信这是脚本当前使用的内存量。我相信“estimated_base”是脚本使用的典型内存量的估计值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-21
      • 1970-01-01
      • 1970-01-01
      • 2015-05-17
      • 2022-08-24
      • 2015-04-10
      • 2012-11-27
      相关资源
      最近更新 更多