STAB算法
摘要:SATB算法思想简介 SATB算法的基本思想,可以概括为如下三句话: 并发标记之前先给Region内存打个快照,标记线程基于这个快照独立进行标记。应用线程不会直接修改这个快照中的对象,也就是说应用线程不会干扰标记线程的工作。 应用线程新分配的对象都认为是活跃对象,实际在下一个并发标记周期进行标记。
阅读全文
posted @
2023-04-05 11:20
zhengbiyu
阅读(513)
推荐(0) 编辑
三色标记
摘要:在遍历对象图的过程中,把需要遍历的对象按照“是否访问过”分为以下三种颜色。 白色:表示对象尚未被垃圾回收器访问过。显然,在可达性分析刚刚开始的阶段,所有的对象都是白色的,若在分析结束的阶段,仍然是白色的对象,即代表不可达。 黑色:表示对象已经被垃圾回收器访问过,且这个对象的所有引用都已经扫描过。黑色
阅读全文
posted @
2023-03-29 19:56
zhengbiyu
阅读(97)
推荐(0) 编辑
G1
摘要:G1抛弃了之前的分代收集的方式,面向整个堆内存进行回收,把内存划分为多个大小相等的独立区域Region。 一共有4种Region: 自由分区Free Region 年轻代分区Young Region,年轻代还是会存在Eden和Survivor的区分 老年代分区Old Region 大对象分区Humo
阅读全文
posted @
2023-03-29 19:54
zhengbiyu
阅读(464)
推荐(0) 编辑
Card Marking
摘要:如果 young gc 线程只遍历年轻代内的对象引用,那么老年代到年轻代的跨代引用就会被忽略,被老年代存活对象跨代引用的年轻代对象会被回收,这样就破坏了应用程序的运行。但是如果每次ygc都进行全堆扫描,且ygc次数较频繁,会很慢。在 young gc 时,为了找到跨代引用,通常有这几个方法: 当对象
阅读全文
posted @
2023-03-19 19:02
zhengbiyu
阅读(37)
推荐(0) 编辑
CMS
摘要:一种以获取最短回收停顿时间为目标的收集器。 特点:基于标记-清除算法实现。并发收集、低停顿。 应用场景:适用于注重服务的响应速度,希望系统停顿时间STW最短,给用户带来更好的体验等场景下。如web程序、b/s服务。 CMS收集器的缺点: CMS收集器对CPU资源非常敏感,在并发阶段虽然不会导致用户线
阅读全文
posted @
2023-03-19 18:46
zhengbiyu
阅读(116)
推荐(0) 编辑