JFR 将反向移植到 Open JDK 8 中,支持 Flight Recorder 性能分析

正如 InfoQ 去年 11 月的报道,在完成早期访问版本之后,Java Flight Recorder 正在被合并
到OpenJDK 8 中。这将允许OpenJDK 8 的构建——如果它们在构建时使用了编译时标识—enable-jfr——使用Java Flight Recorder 来记录事件,以便稍后使用 Java Mission Control
进行分析。已经有人提议 默认启用 JFR
,实际上,对于那些希望禁用该特性的 OpenJDK 8 构建,可以将开关切换为–disable-jfr 标识。

虽然 Oracle Java 8 构建启用了 JFR,但只在商业许可下可用。由于 Oracle 不免费提供最新的 Java 8 构建,开发人员已经转而使用 OpenJDK 8 构建,它可能来自 AdoptOpenJDK
,也可能来自其他渠道,比如 RedHat 或 Azul 的 Zing
。但是,因为来自 Adopt OpenJDK 站点的构建是直接从上游源代码构建的,所以它们还不包含 JFR。一旦更改被合并进来,JFR 将对来自该分支的所有构建可用。Azul 在发布其 Zulu-8 构建时实现了对 JFR 的早期访问支持。

Flight Recorder 的记录可以用 Java Mission Control 打开和分析,或者作为 Eclipse 的插件安装, JMC-7.1
最近已发布。 JMC 7.1 的构建
可以从 Azul
(可以用于 Java 8 和 Java 11 版本的处理)获得,也可以从 RedHat 8.1.1
获得。版本 7 从原始的 Mercurial 存储库
构建,但作为 Project Skara
(旨在
Mercuial 迁移到 Git
,后续迁移到 GitHub
)的早期采用者,版本 8 的未来开发将在新的 openjdk/jmc
GitHub 库中进行。AdoptOpenJDK 为即将发布的第 8 版提供了 JMC 的每夜构建

JFR 背后的技术在不断发展,Java 14 支持 JEP 349
,它允许以流的方式记录 JVM 中的事件,而不必转储和加载用于分析的记录。这使得未来的 JVM 能够连续地使用 JFR 接口将度量数据上传到数据收集引擎,用于仪表板报告。Java 14 的 早期访问版本
将于下个月正式发布。JMC 的主要开发人员 Marcus Hirt 创建了一个 开放跟踪插件
,把时间和范围加入到 JFR 记录中,以便进行更详细的分析。

原文链接:

JFR Coming To Open JDK 8