RFR: Adaptive collection set selection in adaptive policy

Roman Kennke rkennke at redhat.com
Thu Sep 21 13:17:50 UTC 2017


Am 21.09.2017 um 13:42 schrieb Aleksey Shipilev:
> http://cr.openjdk.java.net/~shade/shenandoah/heuristics-adaptive-cset/webrev.01/
>
> This includes both the actual change to adaptive heuristics, and cleanups than make it less painful.
> Brief tour of changes:
>
>   *) RegionGarbage -> RegionData renames, and using ShenandoahHeapRegion* directly. This helps to
> avoid heap region lookups in heuristics;
>
>   *) Coarsening the cset selection method into the single call. This helps to avoid virtual call on
> every region, which makes it more optimizeable (important in leu of "/ 100" on hot path!). Coarse
> method makes advanced heuristics easier to write.
>
>   *) Adaptive heuristics fixes two heuristics deficiencies than may select too small or too large
> collection set. See the comments in the source for discussion.
>
> These changes make LRUFragger survive on 85 GB LDS on 100 GB heap without Full GCs, which was never
> possible before. Example Visualizer drawings with early-ur=on and early-ur=adaptive:
>    http://cr.openjdk.java.net/~shade/shenandoah/heuristics-adaptive-cset/85-on-100-URon.png
>    http://cr.openjdk.java.net/~shade/shenandoah/heuristics-adaptive-cset/85-on-100-URadaptive.png
> (yes, we add more stuff to collection set, but the heap is overloaded, and we manage to avoid Full
> GCs with that)
>
> Testing: hotspot_gc_shenandoah
>
> Thanks,
> -Aleksey
>
Impressive result!

Code changes look good to me.



More information about the shenandoah-dev mailing list