RFR: Provide non-taxable allocation slack at the beginning of the cycle
Aleksey Shipilev
shade at redhat.com
Mon Mar 19 13:13:58 UTC 2018
http://cr.openjdk.java.net/~shade/shenandoah/pacing-slack/webrev.01/
Current pacing scheme has a little deficiency: it starts with zero budget at the beginning of the
cycle. This means the application threads that want to allocate would need to wait for GC threads to
ramp up and replenish the budget, which introduces latencies like these, even if the GC cycle is fast:
Actual pacing delays histogram:
From - To Count
1 ms - 2 ms: 4
2 ms - 4 ms: 144
4 ms - 8 ms: 8
8 ms - 16 ms: 5
16 ms - 32 ms: 1
The way to deal with this: provide the initial non-taxable slack, so that application can allocate
at the beginning of GC cycle. With this patch, we have zero pacing delays with large enough heap
with adaptive/traversal/partial.
Testing: hotspot_gc_shenandoah, targeted benchmarks
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list