-
Enhancement
-
Resolution: Fixed
-
P4
-
9, 10
-
b21
After JDK-8071278 some additional (micro-)optimizations for G1UpdateRSOrPushRefClosure became apparent:
- use the oopDesc::load_heap_oop without decoding for the null check
- one can do the crosses-region check without accessing the heap region
- it's probably better to use the in_cset_state for checking whether something is in the collection set instead of referencing the HeapRegion*
- the same null check and is-in-cset check is repeated in the called G1ParPushHeapRSClosure
- we should not optimize for evacuation failure in this closure, i.e. try to minimize the number of cards to rescan in evacuation failure occurs.
- use the oopDesc::load_heap_oop without decoding for the null check
- one can do the crosses-region check without accessing the heap region
- it's probably better to use the in_cset_state for checking whether something is in the collection set instead of referencing the HeapRegion*
- the same null check and is-in-cset check is repeated in the called G1ParPushHeapRSClosure
- we should not optimize for evacuation failure in this closure, i.e. try to minimize the number of cards to rescan in evacuation failure occurs.
- relates to
-
JDK-8071278 Fix the closure mess in G1RemSet::refine_card()
- Resolved
-
JDK-8177884 Merge G1UpdateRSOrPushRefClosure with G1ParScanClosure
- Closed