-
Enhancement
-
Resolution: Fixed
-
P3
-
None
-
b118
-
generic
-
generic
- Current classlists are generated using a set of startup benchmarks and then versioned together with the VM. Generating the classlists is a time-consuming and poorly documented process, and adds a number of requirements to the performance testing infrastructure. Since the "optimal" classlist change over time but the effect of this degradation is rather innocent on a build-to-build basis, it's only been done infrequently and as late as possible in release, if ever.
- The default CDS archive is currently quite large and there's a body of evidence to suggest that on 32-bit Windows systems a larger CDS archive increasingly lead to failure to map the archive due to interactions with ASLR.
- With JDK 9, features such as Jigsaw, Compact Strings and Indify String Concat, a non-trival amount of classes will be added, which will mean the CDS archive is expected to grow further,
- The set of applications historically used to generate the classlists are outdated and biased towards AWT and Swing-based desktop applications, while mostly missing out on new libraries that we want to incentivize developers to use rather than legacy: java.time.* instead of java.util.Date/Calendar, java.nio instead of java.io.
- For JavaFX applications JEP-275 will likely render the default classlists redundant, in which case it becomes questionable to devote a large part of the CDS archive towards desktop-oriented applications
I suggest moving to a simple, build-time solution using a (set of) synthetic, headless java program(s) as the initial benchmark.
- The default CDS archive is currently quite large and there's a body of evidence to suggest that on 32-bit Windows systems a larger CDS archive increasingly lead to failure to map the archive due to interactions with ASLR.
- With JDK 9, features such as Jigsaw, Compact Strings and Indify String Concat, a non-trival amount of classes will be added, which will mean the CDS archive is expected to grow further,
- The set of applications historically used to generate the classlists are outdated and biased towards AWT and Swing-based desktop applications, while mostly missing out on new libraries that we want to incentivize developers to use rather than legacy: java.time.* instead of java.util.Date/Calendar, java.nio instead of java.io.
- For JavaFX applications JEP-275 will likely render the default classlists redundant, in which case it becomes questionable to devote a large part of the CDS archive towards desktop-oriented applications
I suggest moving to a simple, build-time solution using a (set of) synthetic, headless java program(s) as the initial benchmark.
- blocks
-
JDK-8155237 jlink plugin to order resources should take a class list as input
-
- Closed
-
- duplicates
-
JDK-8005688 jar reorder classlists need to be made Profile aware
-
- Closed
-
- relates to
-
JDK-8157336 Generation of classlists at build time should be configurable
-
- Resolved
-
-
JDK-8147999 The CDS classlist needs to be updated for JDK9
-
- Closed
-
-
JDK-8081587 Improve CDS classlist generation documentation
-
- Closed
-
-
JDK-8157090 SharedArchiveFile/SpaceUtilizationCheck.java fails as space utilization is below 30 percent
-
- Resolved
-
(1 relates to)