【问题标题】: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:未知的诊断命令

【问题讨论】:

    标签: java performance profiling openjdk


    【解决方案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 中可用。

        【讨论】:

          【解决方案6】:

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-12-27
            • 1970-01-01
            • 1970-01-01
            • 2013-09-13
            • 2021-09-22
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多