Relates :
|
|
Relates :
|
|
Relates :
|
In G1RemSet::refine_card the code stacks multiple OopClosures like TriggerClosure, G1InvokeIfNotTriggeredClosure, G1Mux2Closure, FilterIntoCSClosure, FilterOutOfRegionClosure and G1UpdateRSOrPushRefOopClosure to achieve the same effect as a few if-then-else statements. This is complicated and hard to understand, and even the compiler does not seem to be able to inline through it to avoid unnecessary call overhead. Remove this unnecessarily generalized way of doing things. This will also allow removal of quite a bit of code. This should give a few percent of (scan/update rs) performance too.