[DRAFT ... for discussion only ... DRAFT]
This is a overview of the major CDS tasks being planned for JDK 18.
(Note: minor bug fixes/RFEs are not included)
1. General Start-up Improvements
JDK-8026297 Generate AdapterHandlerEntry during CDS dump
2. GC Support of archived heap
Reason: CDS supports archived *classes* for all GC types. However, archived *heap data* is currently supported only for G1 -- we should support other GC types as well.
JDK-8234679 Support CDS Archived Heap in non-G1 garbage collectors
JDK-8255495 Support CDS Archived Heap for uncompressed oops [MAYBE]
3. Better integration with module system
JDK-8264322 Generate CDS archive when creating custom JDK image
JDK-8266329 CDS module graph support for --module and --modulepath [MAYBE]
JDK-8223077 Investigate module path support for dynamic CDS archive [MAYBE]
4. Usability -- make it easy to generate and use CDS archives
JDK-8264735 Make dynamic dump repeatable [jcmd]
JDK-8261455 Automatically generate the CDS archive if necessary
5. Custom loader support
Reason: We have seen some apps that load a significant number of classes using custom loaders.
JDK-8265602 -XX:DumpLoadedClassList should support custom loaders
JDK-8261941 Use ClassLoader for unregistered classes during -Xshare:dump [MAYBE]
JDK-8267189 Remove duplicated unregistered classes from dynamic archive [MAYBE]
6. Leyden investigation
In Leyden, we are likely to introduce a concept of 'preloaded classes' that are already loaded before we ever execute the first bytecode. This would be necessary for implementing heap snapshots. Some changes in Java language spec would be necessary.
In CDS, we can try to implement certain features of pre-loaded classes that are:
- compatible -- can be implemented today without spec changes.
- experimental -- can be enabled with an experimental switch
JDK-XXXXXXX Preload system dictionary with vmClasses [COMPATIBLE]
JDK-XXXXXXX Preload system dictionary with archived classes [EXPERIMENTAL]
JDK-XXXXXXX Resolve constant pool entries for preloaded classes [COMPATIBLE]
This is a overview of the major CDS tasks being planned for JDK 18.
(Note: minor bug fixes/RFEs are not included)
1. General Start-up Improvements
JDK-8026297 Generate AdapterHandlerEntry during CDS dump
2. GC Support of archived heap
Reason: CDS supports archived *classes* for all GC types. However, archived *heap data* is currently supported only for G1 -- we should support other GC types as well.
3. Better integration with module system
JDK-8266329 CDS module graph support for --module and --modulepath [MAYBE]
4. Usability -- make it easy to generate and use CDS archives
5. Custom loader support
Reason: We have seen some apps that load a significant number of classes using custom loaders.
6. Leyden investigation
In Leyden, we are likely to introduce a concept of 'preloaded classes' that are already loaded before we ever execute the first bytecode. This would be necessary for implementing heap snapshots. Some changes in Java language spec would be necessary.
In CDS, we can try to implement certain features of pre-loaded classes that are:
- compatible -- can be implemented today without spec changes.
- experimental -- can be enabled with an experimental switch
JDK-XXXXXXX Preload system dictionary with vmClasses [COMPATIBLE]
JDK-XXXXXXX Preload system dictionary with archived classes [EXPERIMENTAL]
JDK-XXXXXXX Resolve constant pool entries for preloaded classes [COMPATIBLE]