V8 引擎的垃圾回收机制
V8
的垃圾回收机制基于
分代回收机制,这个机制又基于
世代假说,这个假说有两个特点,一个是
新生的对象容易早死,另一个是
不死的对象会活得更久。基于这个假说,
V8
引擎将内存分为了
新生代和
老生代。
新生代
新创建的对象或者只经历一次的垃圾回收的对象被称为新生代。
新生代被分为 From
和 To
两个空间。这两个空间是绝对分隔的。
老生代
经历过多次垃圾回收的对象被称为老生代。
老生代也被分为两个空间,一个叫 Old pointer space
,另一个叫 Old data space
。这两个空间是连接的。
新生代和老生代的内存大小
和操作系统的位数有关,当操作系统是64
位的时候,V8
引擎的内存空间是 1.4G(1464MB)
,当操作系统是32
位的时候,V8
引擎的内存空间是 0.7G(732MB)
。
64
位操作系统的新生代的空间为 64MB
,