V8下的垃圾回收机制

2019-08-04  本文已影响0人  糕糕AA

V8实现了精准式GC,采用分代式垃圾回收机制,将内存(堆)分为“新生代”、“老生代”两部分。

新生代算法

老生代算法

 RO_SPACE,    // 不变的对象空间
  NEW_SPACE,   // 新生代用于 GC 复制算法的空间
  OLD_SPACE,   // 老生代常驻对象空间
  CODE_SPACE,  // 老生代代码对象空间
  MAP_SPACE,   // 老生代 map 对象
  LO_SPACE,    // 老生代大空间对象
  NEW_LO_SPACE,  // 新生代大空间对象

这个过程会遍历所有对象,将活跃的对象进行标记,最后销毁没有被标记的对象;清除过程中会产生一些碎片,当碎片超过一定限制,启动压缩算法:将活的对象向一边移动,直到所有的移动完毕,清除掉不需要的内存

上一篇 下一篇

猜你喜欢

热点阅读