【问题标题】:How to identify JFR event types如何识别 JFR 事件类型
【发布时间】:2021-06-29 07:22:14
【问题描述】:

我知道三种 JFR 事件类型:即时事件、持续时间事件和示例事件,但是如何识别 JFR 事件类型。 我试着从配置中区分出来,但是好像不行,比如jdk.ObjectAllocationInNewTLAB,只需要配置是否启用,貌似是Instant Event,其实是Sample of the Event。

这对我很重要,因为我想用完整的信息而不是样本进行分析

【问题讨论】:

    标签: java jfr


    【解决方案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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 2019-10-06
      • 2023-03-27
      相关资源
      最近更新 更多