RFR: 8261868: Reduce inclusion of metaspace.hpp
Ioi Lam
iklam at openjdk.java.net
Wed Feb 17 06:19:59 UTC 2021
metaspace.hpp is included by about 770 out of 1000 HotSpot .o files. Most of these are transitively included via array.hpp and classLoaderData.hpp.
- classLoaderData.hpp doesn't actually need metaspace.hpp.
- array.hpp can be refactored to put a function that depends on metaspace.hpp into array.inline.hpp
Doing the above reduces the number of .o files that include metaspace.hpp to 343. Since this is still a significant number, we should split out the rarely used classes (such as `MetaspaceGC` and `MetaspaceUtils`) into a new header file (metaspaceUtils.hpp, which is included only 30 times).
Also, these 3 includes can now be removed from metaspace.hpp.
#include "memory/memRegion.hpp"
#include "memory/metaspaceChunkFreeListSummary.hpp"
#include "memory/virtualspace.hpp"
Tested with mach5: tier1, builds-tier2, builds-tier3, builds-tier4 and builds-tier5. Also locally: aarch64, arm, ppc64, s390, x86, and zero.
(I also fixed an unrelated comment in archiveUtils.cpp when I was scanning for the word "Metaspace" in the source files -- the function `MetaspaceShared::commit_to()` no longer exists).
-------------
Commit messages:
- step2
- step 1
Changes: https://git.openjdk.java.net/jdk/pull/2599/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2599&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8261868
Stats: 361 lines in 49 files changed: 221 ins; 132 del; 8 mod
Patch: https://git.openjdk.java.net/jdk/pull/2599.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/2599/head:pull/2599
PR: https://git.openjdk.java.net/jdk/pull/2599
More information about the shenandoah-dev
mailing list