Java 教程

Java 控制语句

面向对象编程

Java 内置类

Java 文件处理

Java 错误和异常

Java 多线程

Java 同步

Java 网络编程

Java 集合

Java 接口

Java 数据结构

Java 集合算法

高级 Java

Java 其他

Java APIs 和框架

Java 类引用

Java 有用资源

Java 10 - 类数据共享


JEP 310 - 应用类数据共享

当 JVM 启动时,它会将类加载到内存中作为初步步骤。如果有多个 jar 包包含多个类,则第一次请求会出现明显的延迟。在无服务器架构中,这种延迟会延迟启动时间,这在这样的架构中是一个关键操作。应用类数据共享概念有助于减少应用程序的启动时间。Java 具有现有的 CDS(类数据共享)功能。通过应用类数据共享,Java 10 允许将应用程序类放入共享存档中。这通过在多个 Java 进程之间共享公共类元数据来减少应用程序启动时间和占用空间。

流程

应用类数据共享是一个三步流程。

  • 创建要存档的类列表 - 使用 Java 启动器创建 welcome.jar 中的 Greeting.java 类 welcome.lst 列表。

$java -Xshare:off -XX:+UseAppCDS -XX:DumpLoadedClassList=welcome.lst -cp welcome.jar Greeting
  • 创建 AppCDS 存档 - 存档要用于应用程序类数据共享的类列表。

$java -Xshare:dump -XX:+UseAppCDS -XX:SharedClassListFile=welcome.lst -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar
  • 使用 AppCDS 存档 - 使用 Java 启动器时使用 AppCDS 存档。

$java -Xshare:on -XX:+UseAppCDS -XX:SharedArchiveFile=welcome.jsa -cp welcome.jar Greeting
广告