RFR(XXS): G1: Duplicated code in G1UpdateRSOrPushRefOopClosure::do_oop_nv()
bengt.rutisson at oracle.com
Mon Jul 16 08:37:45 UTC 2012
On 2012-07-05 21:24, John Cuthbertson wrote:
> Hi Everyone,
> Can I have a couple of volunteers to review this very small change?
> The webrev can be found at:
> While looking at some collect profiles in analyzer with an engineer in
> the JVM performance team, we noticed a high amount of CPU time being
> spent in code inlined into G1UpdateRSOrPushRefOopClosure::do_oop_nv().
> Examination of this code proved that it was code from
> G1RemSet::par_write_ref() - specifically it was code that was fetching
> the HeapRegion for the object and checking for a cross-region
> reference. This code also existed (and was executed) in the
> G1UpdateRSOrPushRefOopClosure::do_oop_nv(). So effectively we were
> executing some duplicated code unnecessarily. The solution was to
> refactor the code for G1UpdateRSOrPushRefOopClosure::do_oop_nv()
> slightly and manually inline the important call from
> G1RemSet::par_write_ref() - eliminating executing the replicated code.
> Collect profiles in analyzer, the GC test suite, and jprt.
More information about the hotspot-gc-dev