RFR: Decouple generational heuristics

Kelvin Nilsen kdnilsen at openjdk.java.net
Tue Oct 5 00:01:36 UTC 2021


On Wed, 29 Sep 2021 19:19:17 GMT, William Kemper <wkemper at openjdk.org> wrote:

> ### Summary
> This commit is part of an effort to improve the performance of the old generation heuristic.
> 
> * added `ShenandoahOldGCHeuristics` - choose the heuristic for old generation (adaptive is default, aggressive is not allowed, only used to trigger old marking, has no influence on cset selection for old generation).
> * added `ShenandoahOldGarbageThreshold` - The minimum percentage of garbage in old region to be included in old cset.
> * added `ShenandoahOldEvacReserve` - Percentage of old generation to withhold from old evacuation.
> * added `ShenandoahGuaranteedOldGCInterval` - Minimum time between old generation collection (default is 10 min).
> * refactored old generation heuristic class hierarchy to reduce code duplication
> * added more detail to log messages and formatted byte sizes for easier human readability
> 
> ### Testing
> Passes tier3 shenandoah jtreg tests and Dacapo and Heapothesys on x86 and aarch64.

Thanks for this cleanup.  Big improvement.  Am eager to test this out.

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

Marked as reviewed by kdnilsen (Committer).

PR: https://git.openjdk.java.net/shenandoah/pull/76


More information about the shenandoah-dev mailing list