Skip to content

Latest commit

 

History

History

8

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

聊一聊 Node 的垃圾回收机制

Node 的 Javascript 脚本引擎是 Chrome 的 V8 引擎,所以垃圾回收机制也属于 V8 的内部垃圾回收机制。

V8 的垃圾回收机制根据对象的存活时间采用了不同的算法,使得垃圾回收变得更高效。

在 V8 中,内存分为新生代与老生代。

对于新生代的内存采取的是将内存区一分为二,将存活的对象从一个区复制到另一个区,然后对原有的区进行内存释放,反复如此。当一个对象经过多次复制依然存活时,这个较长生命周期的对象会被移动到老生代中。

对于老生代的垃圾回收采用的是标记清除算法,遍历所有对象并标记仍然存在的对象,然后在清除阶段将没有标记的对象进行清除,最后将清除后的空间进行内存释放。