RFR: 8255984: Shenandoah: "adaptive" heuristic is prone to missing load spikes [v2]

earthling-amzn github.com+71722661+earthling-amzn at openjdk.java.net
Fri Nov 13 21:25:02 UTC 2020


On Fri, 13 Nov 2020 18:00:31 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:

>> The more I study this patch, the more I like it, good job. Another round of changes below. I fixed a few mentioned issues in my private working copy while doing initial performance testing. Would be good to have an updated PR for testing too.
>
>> ![shen-summary](https://user-images.githubusercontent.com/71722661/99012198-aa2a6700-2502-11eb-9db2-b96b5a1e1ea7.png)
> 
> Yes, it mostly matches what I would expect from this heuristic improvement. As it stands right now, "adaptive" balances way too closely to the cliff, and so it is expected that improvement would make GC cycles more frequent to move GC triggers away from it. On the chart, "Headroom" probably means "Average allocation rate" trigger? It still a bit sad we cannot handle `smoothness=0.0`, but that probably requires future-predicting capabilities not yet available at current technology level.

I'll do more testing. I was hunting for a workload that was manageable by the `compact` heuristic, but caused degenerated cycles with `adaptive`. In theory, the trigger sensitivity and margin of error ought to be able to adapt to the worst case scenario by running cycles with the same frequency as the `compact` heuristic. I also want to find the breaking point of `compact` in this test harness.

-------------

PR: https://git.openjdk.java.net/jdk/pull/1099



More information about the hotspot-gc-dev mailing list