Overview
This is a design document for JDK-8236988 - Modular Design for JVM Flags
- Lots of files have changed. Please read this document first before heading over to the webrev
- Preliminary webrev: http://cr.openjdk.java.net/~iklam/jdk15/vm_flags_overhaul.008/
Goals
Improve the implementation of JVM command-line flags (such as -XX:+UseCompressedOops)
Break up monolithic globals.hpp
- Before:
- #include "runtime/globals.hpp" + globals_shared.hpp = declare all possible flags
- After:
- If you just need flags for ZGC:
#include "gc/z/z_globals.hpp
"
- If you just need flags for ZGC:
- Future: subdivide globals.hpp into individual components:
- (Not in this patch, but possible)
#include "memory/metaspaceShared_globals.hpp" // just flags related to CDS
- Remove complex macros for flags manipulation
- Hotspot command line switches should have multiple type attributes
- See JDK-7123237
E.g., one can have a "manageable" switch and an "experimental" switch, but not a "manageable_experimental" switch.
- See JDK-7123237
- Templatize duplicated flag processing code:
- E.g., .jvmFlags.cpp
- Speed up range/constraint checking for flags
- Avoid linear search for every -XX:NumericFlag=value argument in the command-line (jvmFlagRangeList.cpp)
Proposal
(Design contribution by Erik Österlund, Stefan Karlsson, Coleen Phillimore)
...
Overview
Content Tools
ThemeBuilder