解读 V8 GC Log(二): 堆内外内存的划分与 GC 算法

  1. 云栖社区>
  2. Node.js 性能平台>
  3. 博客>
  4. 正文

解读 V8 GC Log(二): 堆内外内存的划分与 GC 算法

_朴灵_ 2018-05-14 17:50:49 浏览3004
展开阅读全文

原作者:洗影

上一篇文章介绍了理解 V8 GC Log 的意义在哪,简单介绍了一下 V8 GC 的整体特征。在这篇文章里,我们介绍 V8 中堆内存的划分与新老生代的 GC 算法。这些基础知识是理解 V8 GC Log 的关键,不过这篇文章的介绍点到为止,能够读懂 V8 GC Log 即可,以免把大家在细节中带迷路。

V8 堆外内存的划分

在 V8 中,大部分的对象都直接在堆上创建(虽然 V8 的优化编译器会将一些静态分析后确定完全本地的对象放到栈上,即所谓的逃逸分析 = Escape Analysis,此处不赘述)。V8 将堆划分成了几个不同的空间(space,以下 以 4.x 为准,老版本有更多),其中新生代包括一个 New Space,老生代包括 Old Space,Code Space,和 Map Space,此外还有一个特殊的

网友评论

登录后评论
0/500
评论
_朴灵_
+ 关注
所属云栖号: Node.js 性能平台