RFR: Don't treat allocation regions implicitely live during traversal GC
Aleksey Shipilev
shade at redhat.com
Wed Jan 31 20:03:50 UTC 2018
On 01/31/2018 08:59 PM, Roman Kennke wrote:
> Until now, we treated allocation regions from between GC cycles all live in traversal GC. This seems
> inconsequential: we are not treating alloc regions live during the cycle. This means that all the
> allocated garbage will have to pass through one complete cycle to count its liveness, and then
> another cycle to clear it up. This patch changes this to traverse+clear alloc regions in the next
> cycle.
>
> This gives some application a huge boost. E.g. compiler.compiler goes from 180ops/m to around
> 205ops/m in my tests.
>
> http://cr.openjdk.java.net/~rkennke/better-traversal-heuristics/webrev.00/
Um. Doesn't it break non-Traversal GCs? Shared/TLAB allocs would not be counted as live with e.g.
"adaptive"?
-Aleksey
More information about the shenandoah-dev
mailing list