v8 中垃圾回收算法:
- Scavenge
- Minor Mark Compactor
- Incremental Mark Compactor
- Mark Compactor (标记整理)
垃圾回收算法技术:分代收集
- 新生代:副垃圾回收器(Minor):Scavenge 算法
- 对象区
- 空闲区
- 老生代:主垃圾回收器(Mark Compactor)
- 算法演变:标记清除(Mark Sweep) -> 标记整理(Mark Compactor)
- 标记清除算法会产生大量的垃圾碎片
可达性分析:GCRoot:二色标记法,默认是白色,访问过的是黑色
因为 JavaScript 脚本是在主线程执行的,在进行垃圾回收的时候会出现全停顿现象。
- 为了解决该问题,又新增加了 增量标记清除算法(Incremental Mark Compatcor)
- 除此之外还有并行,并发回收
- 为了保证垃圾回收可以被重启,所以又提出了三色标记法