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

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/05Yt2qOQL2v73EJGkP08
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券