RFR: Initial sizing refactor [v2]

Y. Srinivas Ramakrishna ysr at openjdk.org
Wed Dec 21 22:25:28 UTC 2022


On Tue, 20 Dec 2022 20:12:39 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> Some things to highlight here:
>> * This change borrows a bit of code from G1 to handle processing of command line arguments used to size the young generation.
>> * A (hard coded for now) threshold on the difference between young/old time has been added to reduce resizing churn.
>> * The adaptive heuristic doesn't consider the `soft_tail` anymore. `available` is already adjusted for the soft max capacity.
>> * `SoftMaxHeapSize` is used to compute the soft max size and max size for the young generation.
>
> William Kemper has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Improve assertions and comments

General direction looks good to me, as well as the refactoring which greatly improved the structure of the code.

I just had one question about the error signal that drives the control actuation for resizing. I'd expected that to be the _difference of mmu averages_ measured whenever new data is available for these control signals, rather than _difference of collection times_, which it looked like to me (although it's possible I misunderstood).

Also, it'd be great to compare some basic performance numbers with the control algorithm off vs on to show its efficacy.

Thanks!

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

Marked as reviewed by ysr (Author).

PR: https://git.openjdk.org/shenandoah/pull/185


More information about the shenandoah-dev mailing list