JavaScript性能优化 - V8 垃圾回收策略

53 阅读1分钟

在程序的使用过程中,会用到会多的数据而这些数据分为原始数据和对象类型数据。对于这些基础的原始类型数据来说,都是由程序的语言自身来进行控制的。所以在这里我们所提到的回收只要还是指的是当前存活在堆区里的对象数据,因此这个过程是离不开内存操作的而我们当前也知道在 V8 当中对内存是做了上限的。所以这样的话我们就想知道怎么样在这种情况下来对垃圾进行回收的,对于 V8 来说采用的是分代回收的思想,具体来说如何实现,主要就是把当前的内存空间去按照一定的规则分成两类,一个叫做新生代存储区、另一个叫老生代存储区。有了这样一个分类之后,接下来就会针对不同代采用最高效的 GC 算法。从而去对不同的对象进行一个回收的操作,

V8 中常用的 GC 算法

  • 分代回收
  • 空间复制
  • 标记清除
  • 标记整理
  • 标记增量