什么是v8旧空间和新空间?

时间:2014-11-27 16:36:02

标签: v8

正如我所知,

Node.js有两个控制内存分配的参数:

--max_new_space_size--max_old_space_size

那些提到NEW SPACEOLD SPACE的内容究竟是什么?

1 个答案:

答案 0 :(得分:21)

在分代垃圾收集器(V8使用)中,堆通常分为两个空格。年轻一代(新空间)和老一代(旧空间)。婴儿死亡率或代际假设认为,在大多数情况下,年轻物体比旧物体更容易死亡。

新空间:大多数对象都在这里分配。新空间很小,设计为非常快速地进行垃圾收集,与其他空间无关。

旧空间:包含大多数可能具有指向其他对象的指针的对象。大部分物体在新空间中生存了一段时间后才移到这里。

参考:http://www.memorymanagement.org/glossary/g.html#term-generational-hypothesis

参考:http://jayconrod.com/posts/55/a-tour-of-v8-garbage-collection