Integrated: 8251330: Reorder CDS archived heap to speed up relocation
Matias Saavedra Silva
matsaave at openjdk.org
Wed Mar 13 14:03:20 UTC 2024
On Wed, 10 Jan 2024 17:19:39 GMT, Matias Saavedra Silva <matsaave at openjdk.org> wrote:
> We should reorder the archived heap to segregate the objects that don't need marking. This will save space in the archive and improve start-up time
>
> This patch reorders the archived heap to segregate the objects that don't need marking. The leading zeros present in the bitmaps thanks to the reordering can be easily removed, and this the size of the archive is reduced.
>
> Given that the bitmaps are word aligned, some leading zeroes will remain. Verified with tier 1-5 tests.
>
> Metrics, courtesy of @iklam :
> ```calculate_oopmap: objects = 15262 (507904 bytes, 332752 bytes don't need marking), embedded oops = 8408, nulls = 54
> Oopmap = 15872 bytes
>
> calculate_oopmap: objects = 4590 (335872 bytes, 178120 bytes don't need marking), embedded oops = 46487, nulls = 29019
> Oopmap = 10496 bytes
>
> (332752 + 178120) / (507904 + 335872.0) = 0.6054592688106796
> More than 60% of the space used by the archived heap doesn't need to be marked by the oopmap.
>
> $ java -Xshare:dump -Xlog:cds+map | grep lead
> [3.777s][info][cds,map] - heap_oopmap_leading_zeros: 143286
> [3.777s][info][cds,map] - heap_ptrmap_leading_zeros: 50713
>
> So we can reduce the "bm" region by (143286 + 50713) / 8 = 24249 bytes.
>
> Current output:
> $ java -XX:+UseNewCode -Xshare:dump -Xlog:cds+map | grep lead
> [5.339s][info][cds,map] - heap_oopmap_leading_zeros: 26
> [5.339s][info][cds,map] - heap_ptrmap_leading_zeros: 8
This pull request has now been integrated.
Changeset: 7e05a703
Author: Matias Saavedra Silva <matsaave at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/7e05a70301796288cb3bcc6be8fb619b6ce600bc
Stats: 212 lines in 9 files changed: 178 ins; 8 del; 26 mod
8251330: Reorder CDS archived heap to speed up relocation
Reviewed-by: iklam, ccheung
-------------
PR: https://git.openjdk.org/jdk/pull/17350
More information about the hotspot-dev
mailing list