RFR: Generation resizing [v2]

Kelvin Nilsen kdnilsen at openjdk.org
Tue Dec 6 15:48:18 UTC 2022


On Mon, 5 Dec 2022 19:52:35 GMT, William Kemper <wkemper at openjdk.org> wrote:

>> These changes have the generational mode track the minimum mutator utilization (percentage of process time used by mutators). When it falls below a configuration percentage (GCTimeRatio), a heuristic will transfer memory capacity to whatever generation has been using more CPU time. The assumption here is that by increasing capacity, we will decrease the collection frequency and improve the MMU.
>
> William Kemper has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 15 commits:
> 
>  - Remove unnecessary logging, clean up imports
>  - Merge from shenandoah/master
>  - Document the class responsible for adjusting generation sizes
>  - Revert unnecessary change
>  - Remove unused time between cycle tracking
>  - Remove vestigial mmu tracker instance
>  - Clamp adjustments to min/max when increment is too large
>  - Adjust generation sizes from safepoint
>  - Fix crash in SATB mode, always log average MMU on scheduled interval
>  - Limits on generation size adjustments, log young/old heap occupancy in generational mode
>  - ... and 5 more: https://git.openjdk.org/shenandoah/compare/f90a7701...41f057fa

LGTM.  I'm not yet convinced that this is the right heuristic, or the only heuristic for resizing generations.  But this is a huge step making it possible to adjust generation sizes on the fly.  I expect further refinement will be driven by additional experiments.

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

Marked as reviewed by kdnilsen (Committer).

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


More information about the shenandoah-dev mailing list