GC常用算法
1. 标记清除(Mark-Sweep)
image.pngimage.png
- 算法相对简单
- 在存活对象较多的情况,下效率较高。
- 两次扫描,第一次进行标记,第二次进行清理,效率偏低。
- 容易产生碎片
2. 拷贝(Copying)
image.pngimage.png
- 适用于存活对象较少的情况
- 只扫描一次,效率高,适合伊甸区
- 没有碎片
- 移动复制对象,需要调整对象引用
- 空间浪费
3. 标记压缩(Mark-Compact)
image.pngimage.png
- 不会产生碎片,方便对象分配
- 不会产生内存减半
- 扫描两次
- 需要移动对象,效率偏低
网友评论