- java.lang.Object
-
- jdk.jfr.Event
-
public abstract class Eventextends Object
事件的基类,要进行子类化以定义事件及其字段。以下示例显示如何实现
Event
类。import jdk.jfr.Event; import jdk.jfr.Description; import jdk.jfr.Label; 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()
方法将其写入Flight Recorder系统。默认情况下,启用事件。 要禁用事件注释
Event
类@Enabled(false)
。支持的字段类型是Java原语:
boolean
,char
,byte
,short
,int
,long
,float
和double
。 支持的引用类型是:String
,Thread
和类
。 数组,枚举和其他引用类型将被忽略,不包括在内。 可以使用transient修饰符排除支持类型的字段。 不包括静态字段,甚至是支持的类型。工具可以使用注释时,以有意义的方式可视化数据(例如,
Label
,描述
,和Timespan
)。 应用于Event
类或其字段的注释(如果它们存在(间接,直接或关联))包含MetadataDefinition
注释,并且它们不包含枚举,数组或类。收集要存储在事件中的数据可能很昂贵。
shouldCommit()
方法可用于验证在调用Event#commit()commit
方法时是否实际将事件实例写入系统。 如果shouldCommit()
返回false,则可以避免这些操作。- 从以下版本开始:
- 9
-
-
构造方法摘要
构造方法 变量 构造器 描述 protected
Event()
唯一的构造函数,用于子类构造函数的调用,通常是隐式的。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 void
begin()
开始此活动的时间。void
commit()
将字段值,时间戳和事件持续时间写入Flight Recorder系统。void
end()
结束此事件的时间安排。boolean
isEnabled()
如果至少有一个记录正在运行,则返回true
,并且此事件的启用设置设置为true
,否则返回false
。void
set(int index, Object value)
设置字段值。boolean
shouldCommit()
返回true
如果此事件的启用设置为true
,如果持续时间阈值范围内的事件,false
否则。
-
-
-
方法详细信息
-
begin
public final void begin()
开始此活动的时间。
-
end
public final void end()
结束此事件的时间安排。 该end
方法必须在之后调用begin
方法。
-
commit
public final void commit()
将字段值,时间戳和事件持续时间写入Flight Recorder系统。如果事件与的调用开始
begin
方法,但不与的显式调用结束end
方法,然后将在活动结束时commit
方法被调用。
-
isEnabled
public final boolean isEnabled()
如果至少有一个记录正在运行,则返回true
,并且此事件的启用设置设置为true
,否则返回false
。- 结果
-
true
如果启用事件,false
否则
-
shouldCommit
public final boolean shouldCommit()
返回true
如果此事件的启用设置为true
,如果持续时间阈值范围内的事件,false
否则。 阈值是所有正在运行的录制的最低阈值。- 结果
-
true
如果事件可以写入Flight Recorder系统,否则为false
-
set
public final void set(int index, Object value)
- 参数
-
index
- 传递给EventFactory#create(String, java.util.List, java.util.List)
的字段的索引 -
value
- 要设置的值,可以是null
- 异常
-
UnsupportedOperationException
- 如果它不是动态生成的事件 -
IndexOutOfBoundsException
- 如果index
小于0
或大于或等于为事件指定的字段数 - 另请参见:
-
EventType.getFields()
,EventFactory
-
-