-
Enhancement
-
Resolution: Unresolved
-
P4
-
None
We currently have a 1:1 mapping of region remembered sets and G1CardSet instances, this means that the total remembered set may get very large just by the fact of having many regions and many inter-region pointers.
However, at each mixed-gc, depending on the G1MixedGCCountTarget, certain regions have to be collected together. With this in mind, we may have these regions share a single instance of G1CardSet. This can decrease the number of inter-remembered set pointers significantly for regions that will be collected at the same time.
The expected benefit is reduction in the memory overhead of the remembered set and the remembered set merge time during collection pause.
The one disadvantage is that this decreases the flexibility during evacuation slightly: you can only evacuate all regions that share a particular G1CardSet at once.
However, at each mixed-gc, depending on the G1MixedGCCountTarget, certain regions have to be collected together. With this in mind, we may have these regions share a single instance of G1CardSet. This can decrease the number of inter-remembered set pointers significantly for regions that will be collected at the same time.
The expected benefit is reduction in the memory overhead of the remembered set and the remembered set merge time during collection pause.
The one disadvantage is that this decreases the flexibility during evacuation slightly: you can only evacuate all regions that share a particular G1CardSet at once.
- relates to
-
JDK-8058803 Allow one remembered set to be used for multiple regions
- Open
-
JDK-8336086 G1: Use one G1CardSet instance for all young regions
- Resolved
- links to
-
Review(master) openjdk/jdk/22015