RFR: More Partial Heuristics

Christine Flood cflood at redhat.com
Wed May 24 13:32:28 UTC 2017


http://cr.openjdk.java.net/~chf/heuristics/webrev.00/


This patch implements LRU and generational partial heuristics.

We save the timestamp at the first and last allocations in a region.

When performing generational heuristics we only chose regions which had
their first allocation after the last gc cycle.  When performing LRU
heuristics we only chose regions which had their last allocation before the
last gc cycle.  This prevents us from ever having doubly forwarded objects
when partial and major concurrent collections interleave.

Added two new global flags

product_rw(uintx, ShenandoahGenerationalYoungGenPercentage, 20,            \
             "Percentage of the heap designated as young")
 \
          range(0,100)
 \

\
 product_rw(uintx, ShenandoahLRUOldGenPercentage, 20,
\
             "Percentage of the heap designated as old")
 \
          range(0,100)
 \

Which allow the user to specify how much of the heap they would like to
consider young or old for that particular heuristic.

This patch forbids the reuse of partially filled heap regions in its
current form.

I tested LRU, generational, partial, and default heuristics on several
benchmarks.


Christine


More information about the shenandoah-dev mailing list