三色源码解析
2022-02-16 18:36:24 0 举报
open-jdk11 CMS 三色标记图解源码解析
作者其他创作
大纲/内容
CMSCollector::checkpointRootsInitial
N
黑对象
CMSCollector::do_remark_non_parallel()
灰对象
CMSBitMap
空栈
标记
对象内成员引用
src/hotspot/share/memory/iterator.inline.hpp
VM_CMS_Initial_Mark::doit
CMSCollector::checkpointRootsFinalWork()
标记对象
标记任务开始
CMSCollector
_is_gc_active = true
CMSBitMap::isMarked
白对象
src/hotspot/share/gc/cms/cmsOopClosures.hpp
lass PushOrMarkClosure{ private: CMSCollector* _collector; MemRegion _span;//未标记 CMSBitMap* _bitMap;//标记 CMSMarkStack* _markStack;//用来成员变量标记 HeapWord* const _finger; MarkFromRootsClosure* const _parent;
最终标记
出栈
当前对象标记
进栈
ParConcMarkingClosure::do_oop
开始变黑
CMSConcMarkingTask::work
非并行
do_scan_and_mark 灰色
0 条评论
下一页