Integrated: Full region promotion
Kelvin Nilsen
kdnilsen at openjdk.java.net
Mon Oct 4 20:34:21 UTC 2021
On Wed, 29 Sep 2021 16:54:46 GMT, Kelvin Nilsen <kdnilsen at openjdk.org> wrote:
> Prior to this patch, full-region-promotion occurred during the final-evacuation safepoint. When heap regions are very large (e.g. 16 MB) and a large number of heap regions need to be promoted, this was measured to require over 500 ms in certain scenarios. Another disadvantage of the prior implementation is that entire heap regions are promoted as-is without any compaction. A problem with this is that all fragments of garbage within the young-region are promoted into old-gen, where the target heap-region utilization is generally much higher than heap-utilization target within young-gen memory. Once promoted, it is much more costly to compact this memory because an old-gen collection is much more expensive than a young-gen collection.
>
> This patch moves region promotion out of the safepoint. Regions that have reached the tenure age are biased for inclusion within the collection set and are processed during concurrent evacuation using the established conventions. Humongous heap regions are also promoted during concurrent evacuation rather than during the safepoint.
This pull request has now been integrated.
Changeset: 85592d91
Author: Kelvin Nilsen <kdnilsen at openjdk.org>
URL: https://git.openjdk.java.net/shenandoah/commit/85592d91833dea6361f063c31c41e17affeb16a2
Stats: 313 lines in 13 files changed: 116 ins; 150 del; 47 mod
Full region promotion
Reviewed-by: wkemper
-------------
PR: https://git.openjdk.java.net/shenandoah/pull/75
More information about the shenandoah-dev
mailing list