How does g1 handle circular reference between regions ?

Igor Veresov iggy.veresov at
Tue Nov 27 07:49:26 UTC 2012

By doing global reachability analysis (aka marking). 
There are two main sources of information that characterize the liveness of the object:
1. remembered sets
2. marking bitmap (actually there are two of them, one can be modified, while the other one is being used).

A remembered set is a conservative estimate, but the bitmap is exact. If the bitmap says the object is dead, it truly is.
And Rsets are used for reachability analysis only for the young generation.
Rsets also, obviously, point to places where the pointer fixup needs to be done. That's their primary function that facilitates incremental collections.

Also, this could be useful:


On Nov 26, 2012, at 7:41 PM, Sean Chou <zhouyx at> wrote:

> Hello,
> In case Object oA in regin A references oB in region B, oB references oC in regin C, and oc reference oA ? These objects are all in remember set of these regions.
> -- 
> Best Regards,
> Sean Chou

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the hotspot-gc-dev mailing list