RFR: 8332514: Allow class space size to be larger than 3GB
Thomas Stuefe
stuefe at openjdk.org
Thu May 23 15:42:26 UTC 2024
Class space size is capped at 3GB. Technically, the Klass encoding range is 4GB.
We cap class space at 3GB to leave breathing room for CDS. However, CDS needs a lot less, so we waste address space. In addition, class space is unnecessarily capped at 3GB even if we run without CDS, which is unnecessary.
What we should do instead:
- if CDS is off, use the full 4GB
- if CDS is on, use as much memory as we can after accommodating the archive
This patch implements that new behavior.
Now, we can have 4GB class space without CDS; with CDS, a bit less (depends on the CDS archive size; by default, on MacOS, we reach about 3.98GB).
-------------
Commit messages:
- fix 32-bit (why is this not a 64-bit only option)
- JDK-8332514-Allow-class-space-size-to-be-larger-than-3GB-if-possible
Changes: https://git.openjdk.org/jdk/pull/19347/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19347&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8332514
Stats: 39 lines in 3 files changed: 32 ins; 0 del; 7 mod
Patch: https://git.openjdk.org/jdk/pull/19347.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/19347/head:pull/19347
PR: https://git.openjdk.org/jdk/pull/19347
More information about the hotspot-runtime-dev
mailing list