G1GC 读书笔记

一、标记

  1. 初始标记。暂停应用程序线程(STW),根扫描,查找内存区域中和根直接引用的对象,查找到则标记,被查到到的对象如果有子对象,则子对象不会被标记;(标记:标记为存活的对象)
  2. 并发标记。GC线程和应用程序线程是并发执行的,不会STW;并发标记前会执行 SATB (Snapshot at begining) 即把当前对象的引用关系做一个快照并保存。在并发标记阶段应用程序可能会在新的区域产生新的对象,这些对象也会被标记为存活的对象。并发标记阶段存活对象的子对象也会被标记;
  3. 最终标记。
  4. 统计计数。

二、转移

posted @ 2020-12-28 09:53  FrankYou  阅读(80)  评论(0编辑  收藏  举报