Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8207812 Implement Dynamic CDS Archive
  3. JDK-8226529

Release Note: JEP 350 Dynamic CDS Archiving

    XMLWordPrintable

    Details

    • Subcomponent:
    • Verification:
      Verified

      Description

      JEP 350 extends application class-data sharing ([AppCDS](https://openjdk.java.net/jeps/310)) to allow the dynamic archiving
      of classes as a Java application is exiting. It also improves the usability of AppCDS by
      eliminating the need for users to do trial runs to create a class list for each application. The existing
      static archiving enabled by the `-Xshare:dump` option, using a class list, continues work as is.

      The dynamically-generated archive is created on top of the default system archive packaged with the
      running JDK image. A separate top-layer archive file is generated for each application. The user can
      specify the filename of the dynamic archive name as the argument to the `-XX:ArchiveClassesAtExit`
      option. For example, the following command creates `hello.jsa`:
      ```
          % bin/java -XX:ArchiveClassesAtExit=hello.jsa -cp hello.jar Hello
      ```
      To run the same application using this dynamic archive:
      ```
          % bin/java -XX:SharedArchiveFile=hello.jsa -cp hello.jar Hello
      ```

      The user could also specify both the base and the dynamic archives in the `-XX:SharedArchiveFile` option such as:
      ```
          -XX:SharedArchiveFile=<base archive>:<dynamic archive>
      ```

      [CSR JDK-8221706](https://bugs.openjdk.java.net/browse/JDK-8221706) has more details on the command line option.

        Attachments

          Activity

            People

            Assignee:
            ccheung Calvin Cheung
            Reporter:
            mlautman Mary Lautman (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: