Java13 - 动态 CDS 存档
CDS,类数据共享是 JVM 的一项重要功能,可缩短应用程序加载的启动时间。 因为它允许在不同的 JVM 之间共享类元数据,所以它减少了启动时间和内存占用。 Java 10 通过提供 AppCDS 增强了 CDS,应用程序 CDS 使开发人员能够访问共享存档中的应用程序类。 Java 12 将 CDS 存档设置为默认值。
但创建 CDS 的过程非常乏味,因为开发人员必须对他们的应用程序进行多次试验,以创建一个类列表作为第一步,然后将该类列表转储到存档中。 然后这个存档可用于在 JVM 之间共享元数据。
从 Java13 开始,现在 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 TutorialsPoint."); } }
编译并运行程序
$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 TutorialsPoint.