RFR: Don't treat allocation regions implicitely live during traversal GC

Roman Kennke rkennke at redhat.com
Wed Jan 31 19:59:26 UTC 2018


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/

Ok?

Roman


More information about the shenandoah-dev mailing list