如何识别 JFR 事件类型
Posted
技术标签:
【中文标题】如何识别 JFR 事件类型【英文标题】:How to identify JFR event types 【发布时间】:2021-06-29 07:22:14 【问题描述】:我知道三种 JFR 事件类型:即时事件、持续时间事件和示例事件,但是。 我试着从配置中区分出来,但是好像不行,比如jdk.ObjectAllocationInNewTLAB,只需要配置是否启用,貌似是Instant Event,其实是Sample of the Event。
这对我很重要,因为我想用完整的信息而不是样本进行分析
【问题讨论】:
【参考方案1】:您可以使用设置描述符查看事件类型支持的选项:
for(EventType type : FlightRecorder.getFlightRecorder().getEventTypes())
System.out.println(type.getName());
System.out.println("Settings:");
for (SettingDescriptor s : type.getSettingDescriptors())
String def = " (default: " + s.getDefaultValue() + ")";
System.out.println(" " + s.getName() + def);
System.out.println();
还可以使用位于 JAVA_HOME/bin 中的“jfr”工具列出事件元数据,包括设置。对于 JDK 11,您必须提供要为其打印元数据的文件:
$ jfr metadata recording.jfr
对于 JDK 17,您可以省略该文件,您将获得该工具所在的 JDK 的事件类型:
$ jfr metadata
【讨论】:
以上是关于如何识别 JFR 事件类型的主要内容,如果未能解决你的问题,请参考以下文章