首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在nodejs中理解V8的堆信息

在nodejs中理解V8的堆信息
EN

Stack Overflow用户
提问于 2020-01-03 12:02:53
回答 1查看 1.1K关注 0票数 3

从文档中,v8.getHeapSpaceStatistics()返回如下内容

代码语言:javascript
复制
[
  {
    "space_name": "new_space",
    "space_size": 2063872,
    "space_used_size": 951112,
    "space_available_size": 80824,
    "physical_space_size": 2063872
  },
  ...

]

也是v8.getHeapStatistics(),返回

代码语言:javascript
复制
{
  total_heap_size: 7326976,
  total_heap_size_executable: 4194304,
  total_physical_size: 7326976,
  total_available_size: 1152656,
  used_heap_size: 3476208,
  heap_size_limit: 1535115264,
  malloced_memory: 16384,
  peak_malloced_memory: 1127496,
  does_zap_garbage: 0,
  number_of_native_contexts: 1,
  number_of_detached_contexts: 0
}

谁能解释一下这些钥匙和空格到底是什么意思吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-03 12:16:16

V8在不同的空间管理堆,new_space用于快速收集的新对象,而old_space用于更长寿的对象。v8.getHeapSpaceStatistics()返回关于不同空间的统计信息。本文更详细地解释了不同的空间:http://jayconrod.com/posts/55/a-tour-of-v8-garbage-collection

这里引用了文章中的解释:

新空间:大多数对象都在这里分配。新空间很小,被设计成垃圾收集非常快,独立于其他空间。 旧指针空间:包含大多数对象,其中可能有指向其他对象的指针。大多数物体在新空间生存一段时间后被移到这里。 旧数据空间:包含仅包含原始数据的对象(没有指向其他对象的指针)。在新的空间中生存一段时间后,字符串、盒式数字和非装箱双数数组将移到这里。 大对象空间:这个空间包含的对象大于其他空间的大小限制。每个对象都有自己的mmap内存区域。垃圾收集器从不移动大型对象。 代码空间:包含JITed指令的代码对象在这里分配.这是唯一有可执行内存的空间(尽管代码可以在大对象空间中分配,这些代码也是可执行的)。 单元格空间、属性单元格空间和映射空间:这些空间分别包含单元格、PropertyCells和地图.这些空格中的每一个都包含大小相同的对象,并对它们指向的对象类型有一些限制,从而简化了集合。

v8.getHeapStatistics()中不同字段的含义已经在这里得到了回答:nodejs v8. v8.getHeapStatistics方法

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59578303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档