共享类高速缓存

使用 Java 共享类高速缓存提供了一种方法来缩短 JVM 启动时间,减少总体存储器使用率并优化编译过程。 类高速缓存可与所有 JVM 服务器 (OSGi , Liberty 和基于类的服务器) 配合使用。

z/OS® 上的 IBM SDK Java Technology Edition 支持共享类高速缓存。 要使 JVM 服务器能够使用类高速缓存并设置大小,必须使用 JVM 命令行参数。 其他操作需求 (例如,监视类高速缓存的使用情况和销毁类高速缓存) 也使用 Java 命令上的选项来执行。

有关 Java™ 类数据共享的更多信息,请参阅类数据共享

共享类高速缓存可以包含以下元素:
  • Java 类,包括应用程序类, JVM 服务器基础结构和 Java 引导程序类。
  • 提前 (AOT) 编译的代码。

启用类高速缓存

要启用类高速缓存,请使用 JVM 命令行参数,例如:
-Xshareclasses:name=cics.<group>
其中 <group> 可能是 JVM 概要文件符号 &applid; (如果要仅在同一区域中共享类)。 或者,您可以使用公共类选择特定类型的所有 JVM 服务器将连接到的任意标识。 共享的粒度特定于用户,具体取决于您的需求,类高速缓存的大小以及共享应用程序的数量。 您可以确保公共函数的多个 JVM 服务器共享一个类高速缓存 name,并且该类高速缓存的大小足以容纳所有用途。

检查类高速缓存

您可以运行 z/OS UNIX 命令 JAVA_HOME/bin/java -Xshareclasses:name=<named_cache>,printStats 来查看类缓存的满度。 此查询将返回Cache is nn% full消息。
重要信息: 如果您的高速缓存是使用与 JVM 中当前有效的设置不同的 compressedRefs 设置创建的,那么您将收到一条消息,指示您应该使用正确的 JVM 级别。 在这种情况下,您应该检查在创建高速缓存时生效的 compressedRefs 设置是否与创建 JVM 时生效的设置相同。
有关更多信息,请参阅处理缓存问题

设置或更改类高速缓存大小

  1. 修改 JVM 概要文件以定义指定的高速缓存大小 -Xscmx256M
  2. 关闭所有使用高速缓存的 JVM 服务器。
  3. 使用 JAVA_HOME/bin/java -Xshareclasses:name=<named_cache>,destroy 除去高速缓存
  4. 启动 JVM 服务器。
作为此过程的步骤 2 和 3 的替代方法,您可以重新启动 z/OS。