Skip to content

GC(垃圾回收机制)

引用计数法

原理:

  1. 标记对象有多少“程序”在引用自己
  2. 当引用次数为0时即时回收内存

优势: 即时回收

劣势

  1. 标记也占用空间
  2. 循环引用导致标记不为0内存无法回收

标记清除法(V8)

原理:

  1. 从全局作用域的变量出发深度遍历被引用的对象,标记他们
  2. 遍历整个堆,回收没有被标记的对象

优势:

  1. 实现简单
  2. 解决了循环引用的问题:两个对象循环引用无法从根作用域将他们链接起来

劣势:

  1. 两次循环:循环全局作用域,循环堆

复制算法

原理:

  1. 将内存空间分为from、to两部分
  2. 对象存储在from中,当from满时将被引用的对象复制到to,清理from中的对象
  3. 将to空间和from的空间身份互换,完成清理