【问题标题】:the memory distribution of nodejsnodejs的内存分布
【发布时间】:2015-04-01 01:43:54
【问题描述】:

当我启动一个新的 nodejs 并输入 process.memoryUsage() 时,它会显示

> process.memoryUsage() { rss: 11296768, heapTotal: 7195904, heapUsed: 2964776 }

所以 nodejs 使用了 11M 内存,而 v8 的堆使用了 7M。

还有什么会消耗剩余的 11-7=4M 内存,nodejs 的 c++ 部分?库夫? v8 本身?

有什么方法或工具可以查看内存分布吗?

ps:我不需要 node-heap/node-memwatch 来检测 v8 堆中的内存。他们主要是测量js项目(js文件)使用的内存。我想知道节点本身使用的内存。哪些部分使用剩余的 4M,每个部分用了多少。

【问题讨论】:

    标签: c++ node.js memory io.js


    【解决方案1】:

    V8 不会在每次垃圾收集器运行时压缩堆。这意味着两者之间可能有未使用的空间。这是一个非常蹩脚的图表来显示引擎盖下可能发生的事情。

    -------------------------------------------
    |            |             |              |
    |   used     |   unused    |      used    |
    |            |             |              |
    -------------------------------------------
    

    所以总堆大小是分配给最后一个字节的第一个字节。 V8 将来可能会使用“未使用”的空间,但它不需要。

    【讨论】:

      猜你喜欢
      • 2012-10-03
      • 2018-03-23
      • 1970-01-01
      • 2012-03-12
      相关资源
      最近更新 更多