模块 jdk.jfr
 jdk.jfr

类 Event

java.lang.Object
jdk.jfr.Event

public abstract class Event extends Object
事件的基类,将被子类化以定义事件及其字段。

以下示例显示了如何实现 Event 类。

public class Example {

  @Label("Hello World")
  @Description("Helps programmer getting started")
  static class HelloWorld extends Event {
    @Label("Message")
    String message;
  }

  public static void main(String... args) {
    HelloWorld event = new HelloWorld();
    event.message = "hello, world!";
    event.commit();
  }
}
 

在分配事件并填充其字段成员后,可以使用 commit() 方法将其写入飞行记录器系统。

默认情况下,启用事件。要禁用事件,请使用 @Enabled(false) 注释 Event 类。

支持的字段类型是 Java 原语:booleancharbyteshortintlongfloatdouble。支持的引用类型是:StringThreadClass。数组、枚举和其他引用类型被默默地忽略并且不包括在内。可以使用 transient 修饰符排除属于受支持类型的字段。静态字段,即使是受支持的类型,也不包括在内。

使用注解时,工具可以以有意义的方式可视化数据(例如,LabelDescriptionTimespan)。应用于 Event 类或其字段的注释如果存在(间接、直接或关联),则包含 MetadataDefinition 注释,并且它们不包含枚举、数组或类。

收集数据以存储在事件中可能很昂贵。 shouldCommit() 方法可用于验证在调用 commit() 方法时事件实例是否实际写入系统。如果 shouldCommit() 返回 false,则可以避免这些操作。

自从:
9
  • 构造方法总结

    构造方法
    修饰符
    构造方法
    描述
    protected
    唯一构造方法,供子类构造方法调用,通常是隐式的。
  • 方法总结

    修饰符和类型
    方法
    描述
    final void
    开始此事件的计时。
    final void
    将字段值、时间戳和事件持续时间写入飞行记录器系统。
    final void
    end()
    结束本次活动的计时。
    final boolean
    如果至少有一个记录正在运行,则返回 true,并且此事件的启用设置设置为 true,否则返回 false
    final void
    set(int index, Object value)
    设置字段值。
    final boolean
    如果此事件的启用设置设置为 true 并且持续时间在事件的阈值内,则返回 true,否则返回 false

    在类 java.lang.Object 中声明的方法

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • 构造方法详细信息

    • Event

      protected Event()
      唯一构造方法,供子类构造方法调用,通常是隐式的。
  • 方法详情

    • begin

      public final void begin()
      开始此事件的计时。
    • end

      public final void end()
      结束本次活动的计时。 end 方法必须在 begin 方法之后调用。
    • commit

      public final void commit()
      将字段值、时间戳和事件持续时间写入飞行记录器系统。

      如果事件以调用 begin 方法开始,但不以显式调用 end 方法结束,则事件在调用 commit 方法时结束。

    • isEnabled

      public final boolean isEnabled()
      如果至少有一个记录正在运行,则返回 true,并且此事件的启用设置设置为 true,否则返回 false
      返回:
      true 如果启用事件,false 否则
    • shouldCommit

      public final boolean shouldCommit()
      如果此事件的启用设置设置为 true 并且持续时间在事件的阈值内,则返回 true,否则返回 false。阈值是所有正在运行的记录的最小阈值。
      返回:
      true如果事件可以写入飞行记录器系统,false否则
    • set

      public final void set(int index, Object  value)
      设置字段值。

      仅当使用 EventFactory 类动态定义事件时才适用。

      提供的 index 对应于传递给 EventFactory 类的工厂方法的 ValueDescriptor 对象的索引。

      参数:
      index - 传递给 EventFactory.create(java.util.List, java.util.List) 的字段的索引
      value - 要设置的值,可以是 null
      抛出:
      UnsupportedOperationException - 如果它不是动态生成的事件
      IndexOutOfBoundsException - 如果 index 小于 0 或大于或等于为事件指定的字段数
      参见: