【问题标题】:How to enable heap metrics for jfr via command line如何通过命令行为 jfr 启用堆指标
【发布时间】:2019-06-19 23:56:17
【问题描述】:

我正在尝试使用位于 /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/jcmd (Mac OS X) 的 jcmd 二进制文件运行 Java Flight Recorder。是否有命令行选项来启用与 Start Flight Recording UI 上的 Heap Statistics 选项相对应的堆指标:

【问题讨论】:

    标签: java performance metrics jmc jfr


    【解决方案1】:

    没有命令行或 jcmd 选项来启用堆统计

    该事件在默认和配置文件设置文件中都被禁用,因为它在堆上迭代时会产生一个安全点。

    但是,您可以在 JMC,Windows -> 模板管理器中使用模板管理器。并检查您想要的设置,即堆统计,然后导出文件。然后使用 jcmd 来应用它

    jcmd <pid> JFR.start settings=my-configuration-file.jfc
    

    如果您尝试诊断内存泄漏,可能有兴趣知道 Oracle JDK 10+ 和 OpenJDK 11+ 记录旧对象样本事件,该事件收集的信息通常对解决 Java 内存泄漏(以及没有安全点开销)。后来的 JDK 有选项 path-to-gc-roots=true(对于 jcmd 和 -XX:StartFlightRecording),可以提供额外的信息来解决内存泄漏。然而,该选项将产生与堆统计类似的开销,但比 HPROF 转储的开销要少得多,因为写入磁盘的数据要少得多。

    【讨论】:

    • 感谢您的回答!既然您已经提到它,我在定位 jmc 7 的二进制文件时遇到了麻烦。 jdk.java.net/jmc 似乎是空的,我似乎找不到任何替代方案。你有关于下载 jmc7 的 Mac OS 二进制文件副本的信息吗?
    • 对不起,我不知道。
    • stackoverflow.com/a/53931362,我相信构建很快就会可用。
    猜你喜欢
    • 1970-01-01
    • 2016-04-25
    • 2021-03-06
    • 2020-08-29
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    相关资源
    最近更新 更多