[HotSpot VM]请教G1中为什么initial marking可以搭在young GC上执行
LeafInWind
2015-01-22
看了http://hllvm.group.iteye.com/group/topic/44381,但对R大说的initial marking能够搭在young gc上执行还是没有理解。
R大 写道 分代式G1模式下有两种选定CSet的子模式,分别对应young GC与mixed GC:
* Young GC:选定所有young gen里的region。通过控制young gen的region个数来控制young GC的开销。 * Mixed GC:选定所有young gen里的region,外加根据global concurrent marking统计得出收集收益高的若干old gen region。在用户指定的开销目标范围内尽可能选择收益高的old gen region。 从这里看,我的理解是young GC仅仅代表“在evacuation阶段收集young gen中所有region”这个动作。而initial marking是global concurrent marking的一部分,后者按照R大的说法是与evacuation相对独立的: R大 写道 从最高层看,G1的collector一侧其实就是两个大部分:
* 全局并发标记(global concurrent marking) * 拷贝存活对象(evacuation) 而这两部分可以相对独立的执行。 那么intial marking这个动作是如何与young GC这个动作搭上的呢,没有搞明白 另外R大能否顺便说一下相关源码的位置。谢谢 |