Java 13 动态CDS存档

Java 13 动态CDS存档

CDS,即类数据共享,是JVM的重要功能,可以提高应用加载的启动时间。它允许在不同的JVM之间共享类元数据,从而减少启动时间和内存占用。Java 10通过提供应用程序CDS(AppCDS)增强了CDS的功能,使开发者可以将应用程序类包含在共享存档中。Java 12将CDS存档设置为默认选项。

但是创建CDS的过程很繁琐,因为开发者需要多次尝试他们的应用程序,以创建一个类列表作为第一步,然后将该类列表导出到一个存档中。然后,这个存档可以在不同的JVM之间共享元数据。

从Java 13开始,现在Java引入了动态存档。现在开发者可以在应用程序退出时生成一个共享存档。因此,不再需要进行试行运行。

以下步骤展示了如何使用选项-XX:ArchiveClassesAtExit和传递存档名称在默认系统存档之上创建一个动态共享存档。

$java -XX:ArchiveClassesAtExit=sharedApp.jar -cp APITester.jar APITester

一旦生成了共享存档,就可以使用-XX:SharedArchiveFile选项来运行应用程序。

$java -XX:SharedArchiveFile=sharedApp.jar -cp APITester.jar APITester

示例

考虑以下示例 –

APITester.java

public class APITester {
   public static void main(String[] args) {
      System.out.println("Welcome to geek-docs.");
   }   
}

编译和运行程序

$javac APITester.java

$jar cf APITester.jar APITester.class

$java -XX:ArchiveClassesAtExit=sharedApp.jsa -cp APITester.jar APITester

$java -XX:SharedArchiveFile=sharedApp.jsa -cp APITester.jar APITester

输出

Welcome to geek-docs.

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程