RFR: Initial sizing refactor
Y. Srinivas Ramakrishna
ysr at openjdk.org
Tue Dec 20 01:02:15 UTC 2022
On Fri, 16 Dec 2022 00:36:41 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.
src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp line 459:
> 457: _young_generation = new ShenandoahYoungGeneration(_max_workers, max_capacity_young, initial_capacity_young);
> 458: _old_generation = new ShenandoahOldGeneration(_max_workers, max_capacity_old, initial_capacity_old);
> 459: _global_generation = new ShenandoahGlobalGeneration(_max_workers, soft_max_capacity(), soft_max_capacity());
A single line of comment here would be helpful here. It sounds as if the idea is that for the so-called global generation (which I assume is identified with the entirety of the committed heap at any time), the initial and max (floor and ceiling) are both set at `soft_max_capacity` ? What does that mean? I might have naively expected this to be, respectivley, `max_old + max_young` and `initial_old + initial_young` like you had it before.
-------------
PR: https://git.openjdk.org/shenandoah/pull/185
More information about the shenandoah-dev
mailing list