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

Make -Xshare:auto the default for server VM



    • CSR
    • Resolution: Approved
    • P3
    • 11
    • hotspot
    • behavioral
    • minimal
    • Some script may assume that the CDS archive is not used even if it's present inside the JDK. However, there will be no behavioral differences at the Java language level whether CDS is used or not.
    • add/remove/modify command line option
    • Implementation



      Currently the default class data sharing (CDS) setting for Server VM is -Xshare:off. Change the default to -Xshare:auto to make it easier to use CDS.


      We expect CDS to be widely used with the Server VM. However, the current default CDS setting for Server VM is -Xshare:off. This makes it cumbersome to use CDS.


      Change the default to -Xshare:auto, so as long as a CDS archive exists in the JDK, CDS will be automatically used without specifying extra flags.

      In JDK 8 and before, RewriteBytecodes was disabled when CDS was enabled. This caused performance degradation in the Server Compiler (aka C2). However this has been fixed in JDK-8074345 since JDK 9, so there's no longer need to disable CDS by default with the Server VM.


      For the Server VM, if the -Xshare option is not explicitly specified in the command-line:

      • If the -XX:SharedArchiveFile=<file> option is specified, and <file> exists, the JVM will attempt to map <file> as the CDS archive, as if -Xshare:auto had been specified.
      • If the -XX:SharedArchiveFile option is not specified, the VM will attempt to map the default CDS archive ( $JAVA_HOME/lib/server/classes.jsa), as if -Xshare:auto had been specified.

      Note: no user visible changes are needed in the -help output because the current output for the server VM already says (incorrectly)

          -Xshare:auto      use shared class data if possible (default)
          -Xshare:off       do not attempt to use shared class data
          -Xshare:on        require using shared class data, otherwise fail.

      so in a way we are just changing the implementation to match the documentation.


        Issue Links



              iklam Ioi Lam
              iklam Ioi Lam
              Alan Bateman, Calvin Cheung
              0 Vote for this issue
              4 Start watching this issue