RFR: Variable steps in adaptive heuristics

Aleksey Shipilev shade at redhat.com
Mon May 15 19:24:14 UTC 2017


Hi,

Current adaptive heuristics makes only +1 or -1 steps for free threshold,
depending on conditions.

This is not good for several reasons:
 a) Full GC means something going completely awry, and we need to step back hard
to alleviate this. Stepping one percent is not going to cut it, because we will
probably run into another Full GC;
 b) Cancelled GC means something had changed so much, that we blew the free
threshold completely -- like a workload phase change -- and we should step back
harder to see what is going on.
 c) When the initial guess for free threshold is wrong, it would take a while to
arrive to most optimal one with small steps.

The idea is to make variable steps, depending on distance from target and/or
exceptional circumstances:
  http://cr.openjdk.java.net/~shade/shenandoah/adaptive-varsteps/webrev.01/

Testing: hotspot_gc_shenandoah, specjbb, specjvm

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list