JVM垃圾回收

2020-03-21  本文已影响0人  知而乐者

什么需要回收

如何判断对象是否已死?

其他说明

垃圾回收算法

标记清除法

复制算法

标记整理法

分代收集算法

垃圾回收器

连线代表可以一块使用

作用于新生代的垃圾回收器有:Serial,ParNew,Parallel Scavenge
作用于老年代的垃圾回收器有:CMS,Serial Old, Parallel Old
G1收集器即可以作用于新生代又可以作用域老年代

CMS是以获取最短停顿时间为目标的收集器,采用标记-清除的算法,分为4步:初始标记-》并发标记-》重新标记-》并发清除
初始标记:标记GCRoot。很快,但需要STW
并发标记:通过初始标记的GCRoot去追踪标记内存中的对象,和用户线程一块跑(耗时较长)
重新标记:修正在在并发标记有变动的部分,停顿时间比初始标记长但远比并发标记短,需要STW
并发清除:和用户线程一块进行清除垃圾数据
问题:会有碎片,对CPU要求高只有一个CPU的话性能反而会低,产生浮动垃圾(就是清理的时候又产生了垃圾)

上一篇下一篇

猜你喜欢

热点阅读