Mark–Scavenge:等待垃圾自行清理
💡
原文英文,约1400词,阅读约需5分钟。
📝
内容提要
本文总结了一种新的垃圾回收算法Mark-Scavenge,指出以可达性作为活跃性代理会导致不必要的数据移动。研究表明,Mark-Scavenge通过延迟回收,减少了无效对象的移动,提高了性能,尤其在高负载情况下显著降低了垃圾数据的复制。
🎯
关键要点
- 本文总结了一种新的垃圾回收算法Mark-Scavenge,强调以可达性作为活跃性代理会导致不必要的数据移动。
- 现代垃圾回收假设弱代假设成立,大多数对象在年轻时就会死亡,因此堆内存按年龄分区。
- 使用可达性来近似活跃性可能导致移动对象以回收内存,从而造成“浪费工作”。
- 研究表明,使用分离的标记和撤离阶段的收集器会导致更多的无效对象复制。
- Mark-Scavenge算法通过延迟撤离,减少了无效对象的移动,提高了性能,尤其在高负载情况下。
- Mark-Scavenge结合了Scavenging和Mark-Evacuate的优点,能够选择性撤离并延迟撤离。
- 实验结果显示,Mark-Scavenge在减少死对象的重新定位方面达到了91%的减少。
- 在高负载机器上,Mark-Scavenge的性能提升显著,延迟减少了20%的延迟时间。
🏷️
标签
➡️