OpenJDK 1.8 是不是支持 JFR?

Posted

技术标签:

【中文标题】OpenJDK 1.8 是不是支持 JFR?【英文标题】:Does OpenJDK 1.8 support JFR?OpenJDK 1.8 是否支持 JFR? 【发布时间】:2017-03-16 22:29:31 【问题描述】:

我不确定OpenJDK 1.8 是否支持JFR(java 飞行记录器)。我知道它是在 OpenJDK 错误论坛上请求的。

Linux 上使用OpenJDK 并从终端执行以下操作:

jcmd `<pid>` JFR.start 

返回

java.lang.IllegalArgumentException:未知的诊断命令

【问题讨论】:

【参考方案1】:

OpenJDK 8 源代码不包括 Java Flight Recorder 实现。根据http://openjdk.java.net/projects/jdk/11/,该功能旨在成为 JDK 11 的 OpenJDK 源代码的一部分。

【讨论】:

创建此答案时可能是这样。但正如另一个答案中提到的,它已被向后移植到 OpenJdk 8。【参考方案2】:

JFR 正式包含在 OpenJDK 8 更新 262 中。您可以查看release notes for openjdk8u262。

新功能 - JDK-8223147:JFR 反向端口

您可以从AdoptOpenJDK 下载此(或最新的 JFR 版本)版本。

【讨论】:

【参考方案3】:

Java Flight Recorder 是 Java SE Advanced 中包含的商业产品,仅包含在 Oracle JDK 中,不包含在 OpenJDK 中。

【讨论】:

谢谢@Ingo - 我有同样的感觉 - 当我开始收到异常时 - 在查看 OpenJDK 错误论坛之后 - 有一些票证是为了支持 JFR。但不确定这种努力走了多远。 如果需要分析 JVM 进程,OpenJDK 有哪些选择。 所有其他商业分析器都支持 OpenJDK。我公司开发JProfiler,你可以看看:ej-technologies.com/products/jprofiler/overview.html 您的工具适用于远程 JVMS 吗?或者是否需要指定一个JMX端口,然后使用指定的端口执行程序才能让工具连接? 飞行记录器正在开源。 openjdk.java.net/jeps/328【参考方案4】:

Java 飞行记录器不是第 8 版的一部分,但必须开源并包含在第 11 版中,根据 http://openjdk.java.net/jeps/328 https://bugs.openjdk.java.net/browse/JDK-8193393

更新(它在那里): https://mail.openjdk.java.net/pipermail/announce/2018-September/000257.html

【讨论】:

【参考方案5】:

在 OpenJDK 8u262 中可用。

新功能 JDK-8223147:JFR 反向移植 https://mail.openjdk.java.net/pipermail/jdk8u-dev/2020-July/012143.html

【讨论】:

【参考方案6】:

根据 http://hirt.se/blog/?p=1161 和 JFR Backport 到 OpenJDK 8 的正式计划,并且已经可以在某些版本中试用:https://www.infoq.com/news/2020/02/jfr-coming-to-openjdk-8/

【讨论】:

以上是关于OpenJDK 1.8 是不是支持 JFR?的主要内容,如果未能解决你的问题,请参考以下文章

JFR 文件一旦打印为 Json 是不是可以编译回 .jfr 格式

CentOS安装jdk SE 1.8 JDK与OpenJDK的区别

使用 OpenJDK 1.8 的 JavaFX 的 Maven 依赖项

使用 openjdk 1.8 的 Java SSL 通信握手失败

需求windows32位openjdk1安装包,1.7和1.8都行

Oracle JDK 1.8 openJDK11 定制化JDK