Currently, HotSpotVMConfig uses a lot of reflection and annotation parsing during its initialization. This costs about 80ms on fast desktop machine. This penalty impacts time to peak performance on a number of benchmarks. Removing the use of reflection brings this cost as close to 0 as possible.
One side effect of this change will also be to make it possible for JVMCI compilers to localize control over which VM configuration data they use which in turn makes it easier to handle later VM changes that add/remove VM configuration exposed via JVMCI. For example, Graal will now have it's own GraalHotSpotVMConfig class and HotSpotVMConfig will become package-private only have fields for VM configuration info directly used in the JVMCI implementation.
One side effect of this change will also be to make it possible for JVMCI compilers to localize control over which VM configuration data they use which in turn makes it easier to handle later VM changes that add/remove VM configuration exposed via JVMCI. For example, Graal will now have it's own GraalHotSpotVMConfig class and HotSpotVMConfig will become package-private only have fields for VM configuration info directly used in the JVMCI implementation.
- relates to
-
JDK-8159856 [JVMCI] InterpreterFrameSizeTest.java failed compilation
-
- Resolved
-