Класс Event
public abstract class Event extends jdk.internal.event.Event
Следующий пример демонстрирует, как реализовать класс 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();
}
}
После выделения события и заполнения его полей, его можно записать в систему Flight Recorder, используя метод commit().
По умолчанию событие включено. Чтобы отключить событие, аннотируйте класс Event аннотацией @Enabled(false).
Поддерживаемые типы полей — это базовые типы Java: boolean, char, byte, short, int, long, float, и double. Поддерживаемые ссылочные типы: String, Thread и Class. Массивы, перечисления и другие ссылочные типы игнорируются и не включаются. Поля поддерживаемых типов можно исключить, используя модификатор transient. Статические поля, даже поддерживаемых типов, не включаются.
Инструменты могут визуализировать данные осмысленным образом, если используются аннотации (например, Label, Description, и Timespan). Аннотации, примененные к классу Event или его полям, включаются, если они присутствуют (косвенно, непосредственно или ассоциированы), содержат аннотацию MetadataDefinition и не содержат перечислений, массивов или классов.
Сбор данных для хранения в событии может быть затратным. Метод shouldCommit() можно использовать для проверки того, будет ли экземпляр события фактически записан в систему при вызове метода commit(). Если shouldCommit() возвращает false, то эти операции можно избежать.
- Since:
- 9
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Единственный конструктор, для вызова конструкторами подклассов, обычно неявный. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final void |
begin() |
Запускает отсчет времени для этого события. |
final void |
commit() |
Записывает значения полей, временную метку и продолжительность события в систему Flight Recorder. |
final void |
end() |
Останавливает отсчет времени для этого события. |
final boolean |
isEnabled() |
Возвращает true, если хотя бы одна запись запущена, и параметр включения для этого события установлен в true, в противном случае возвращается false. |
final void |
set |
Устанавливает значение поля. |
final boolean |
shouldCommit() |
Возвращает true, если параметр включения для этого события установлен в true, и продолжительность находится в пределах порога для события, false, в противном случае. |
Подробное описание конструкторов
Event
protected Event()
Подробное описание методов
begin
public final void begin()
- Overrides:
-
beginв классеjdk.internal.event.Event
end
public final void end()
end должен быть вызван после метода begin.- Overrides:
-
endв классеjdk.internal.event.Event
commit
public final void commit()
Если событие начинается с вызова метода begin, но не заканчивается явным вызовом метода end, то событие завершается при вызове метода commit.
- Overrides:
-
commitв классеjdk.internal.event.Event
isEnabled
public final boolean isEnabled()
true, если хотя бы одна запись запущена, и параметр включения для этого события установлен в true, в противном случае возвращает false. - Overrides:
-
isEnabledв классеjdk.internal.event.Event - Возвращает:
-
trueесли событие включено,falseв противном случае
shouldCommit
public final boolean shouldCommit()
true, если параметр включения для этого события установлен в true, и продолжительность находится в пределах порога для события, false, в противном случае. Порог — это минимальный порог для всех запущенных записей.- Overrides:
-
shouldCommitв классеjdk.internal.event.Event - Возвращает:
-
trueесли событие может быть записано в систему Flight Recorder,falseв противном случае
set
public final void set(int index, Object value)
Применимо только если событие динамически определено с использованием класса EventFactory.
Переданный index соответствует индексу объекта ValueDescriptor, переданного в метод-фабрику класса EventFactory.
- Overrides:
-
setв классеjdk.internal.event.Event - Параметры:
-
index- индекс поля, переданного вEventFactory.create(java.util.List, java.util.List) -
value- значение для установки, может бытьnull - Исключения:
-
UnsupportedOperationException- если это не динамически сгенерированное событие -
IndexOutOfBoundsException- еслиindexменьше0или больше или равно количеству полей, указанных для события - См. также:
© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/jdk.jfr/jdk/jfr/Event.html