Integrated: Decouple generational heuristics

William Kemper wkemper at openjdk.java.net
Tue Oct 5 16:26:32 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.

This pull request has now been integrated.

Changeset: 4d8ce22f
Author:    William Kemper <wkemper at openjdk.org>
URL:       https://git.openjdk.java.net/shenandoah/commit/4d8ce22f209f125a456cc757842f10a459822e60
Stats:     1239 lines in 29 files changed: 206 ins; 995 del; 38 mod

Decouple generational heuristics

Reviewed-by: kdnilsen

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

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


More information about the shenandoah-dev mailing list