Java 如何通过命令行为jfr启用堆度量

Java 如何通过命令行为jfr启用堆度量,java,performance,metrics,jmc,jfr,Java,Performance,Metrics,Jmc,Jfr,我正在尝试使用jcmd二进制文件/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/jcmd(Mac OS X)运行Java Flight Recorder。是否有命令行选项来启用与开始飞行记录UI上的堆统计选项相对应的堆度量: 没有命令行或jcmd选项来启用堆统计信息 该事件在默认和概要文件设置文件中都被禁用,因为它在堆上迭代时会导致安全点 但是,您可以在JMC、Windows->template manag

我正在尝试使用jcmd二进制文件/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/jcmd(Mac OS X)运行Java Flight Recorder。是否有命令行选项来启用与开始飞行记录UI上的堆统计选项相对应的堆度量:


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

该事件在默认和概要文件设置文件中都被禁用,因为它在堆上迭代时会导致安全点

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

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

如果您正试图诊断内存泄漏,您可能会感兴趣地了解到Oracle JDK 10+和OpenJDK 11+记录了旧对象示例事件,该事件收集的信息通常对解决Java内存泄漏更有用(并且没有安全点开销)。以后的JDK具有gc root=true的选项路径(对于jcmd和-XX:StartFlightRecording),可以提供额外的信息来解决内存泄漏问题。不过,该选项会产生与堆统计数据类似的开销,但比HPROF转储的开销要小得多,因为写入磁盘的数据量更少。

谢谢您的回答!既然您已经提到了,我在查找JMC7的二进制文件时遇到了问题。似乎是空的,我似乎找不到任何选择。你有没有关于为Mac OS下载jmc7二进制文件的信息?对不起,我不知道。看,我相信版本很快就会发布。