-
Enhancement
-
Resolution: Fixed
-
P4
-
11
-
b11
Since moving reclaim regions into the Remark phase there are concerns of making it too long.
Measurements show that for ~3200 regions (100GB heap, 32GB regions) the Remset Tracking Update Before Rebuild phase takes around one ms.
remark-parallel-base.log:[113.354s][debug][gc,phases] GC(10) Update Remembered Set Tracking Before Rebuild 0.965ms
remark-parallel-base.log:[147.049s][debug][gc,phases] GC(15) Update Remembered Set Tracking Before Rebuild 0.964ms
remark-parallel-base.log:[198.223s][debug][gc,phases] GC(19) Update Remembered Set Tracking Before Rebuild 0.969ms
remark-parallel-base.log:[237.106s][debug][gc,phases] GC(24) Update Remembered Set Tracking Before Rebuild 1.047ms
remark-parallel-base.log:[278.606s][debug][gc,phases] GC(29) Update Remembered Set Tracking Before Rebuild 1.057ms
remark-parallel-base.log:[312.429s][debug][gc,phases] GC(33) Update Remembered Set Tracking Before Rebuild 0.663ms
On very large heaps this increases linearly, so it may be useful to parallelize this phase with a reasonable parallelization factor, like a few hundred regions per thread started
Measurements show that for ~3200 regions (100GB heap, 32GB regions) the Remset Tracking Update Before Rebuild phase takes around one ms.
remark-parallel-base.log:[113.354s][debug][gc,phases] GC(10) Update Remembered Set Tracking Before Rebuild 0.965ms
remark-parallel-base.log:[147.049s][debug][gc,phases] GC(15) Update Remembered Set Tracking Before Rebuild 0.964ms
remark-parallel-base.log:[198.223s][debug][gc,phases] GC(19) Update Remembered Set Tracking Before Rebuild 0.969ms
remark-parallel-base.log:[237.106s][debug][gc,phases] GC(24) Update Remembered Set Tracking Before Rebuild 1.047ms
remark-parallel-base.log:[278.606s][debug][gc,phases] GC(29) Update Remembered Set Tracking Before Rebuild 1.057ms
remark-parallel-base.log:[312.429s][debug][gc,phases] GC(33) Update Remembered Set Tracking Before Rebuild 0.663ms
On very large heaps this increases linearly, so it may be useful to parallelize this phase with a reasonable parallelization factor, like a few hundred regions per thread started
- relates to
-
JDK-8154528 Reclaim regions emptied by marking in Remark pause
-
- Resolved
-