Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8267354

JDK 18 CDS Planning Notes



    • Type: Task
    • Status: Resolved
    • Priority: P4
    • Resolution: Other
    • Affects Version/s: 18
    • Fix Version/s: 18
    • Component/s: hotspot
    • Labels:


      [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]




            iklam Ioi Lam
            iklam Ioi Lam
            0 Vote for this issue
            3 Start watching this issue