Rebuilding the remembered sets in JDK-8180415 requires G1 to have an idea which regions' remembered sets should be recalculated.
One metric G1 uses since forever is the liveness within a region; if it is above a given threshold, we do not evacuate that region in the next mixed gc phase.
To simulate this, we want to have region liveness information before rebuilding the remembered sets, i.e. at the end of remark.
Similar argument can be made for the number of incoming references which is a good indicator for the size of the remembered set for that region.
This metric can also be used in the future for e.g. freeing the completely empty regions at remark to allow immediate reuse (JDK-8154528).
One metric G1 uses since forever is the liveness within a region; if it is above a given threshold, we do not evacuate that region in the next mixed gc phase.
To simulate this, we want to have region liveness information before rebuilding the remembered sets, i.e. at the end of remark.
Similar argument can be made for the number of incoming references which is a good indicator for the size of the remembered set for that region.
This metric can also be used in the future for e.g. freeing the completely empty regions at remark to allow immediate reuse (
- blocks
-
JDK-8180415 Rebuild remembered sets during the concurrent cycle
- Resolved
- relates to
-
JDK-8154528 Reclaim regions emptied by marking in Remark pause
- Resolved
-
JDK-8242847 G1 should not clear mark bitmaps with no marks
- Resolved