Spec-Zone.ru › OpenJDK 25

Класс FlightRecorder

java.lang.Object
jdk.jfr.FlightRecorder
public final class FlightRecorder extends Object
Класс для доступа к Flight Recorder, управления им и его администрирования.

Этот класс предоставляет методы, необходимые для создания, запуска, остановки и удаления записей.

Начиная с:
9

Краткое описание методов

Модификатор и тип Метод Описание
static void addListener(FlightRecorderListener changeListener)
Добавляет слушателя средства записи.
static void addPeriodicEvent(Class<? extends Event> eventClass, Runnable hook)
Добавляет обработчик периодического события.
List<EventType> getEventTypes()
Возвращает неизменяемый список, содержащий все зарегистрированные на данный момент события.
static FlightRecorder getFlightRecorder()
Возвращает Flight Recorder для платформы.
List<Recording> getRecordings()
Возвращает неизменяемый список доступных записей.
static boolean isAvailable()
Возвращает true, если виртуальная машина Java (JVM) поддерживает Flight Recorder.
static boolean isInitialized()
Возвращает true, если Flight Recorder инициализирован.
static void register(Class<? extends Event> eventClass)
Регистрирует класс события.
static boolean removeListener(FlightRecorderListener changeListener)
Удаляет слушателя средства записи.
static boolean removePeriodicEvent(Runnable hook)
Удаляет обработчик периодического события.
Recording takeSnapshot()
Создает снимок всех доступных записанных данных.
static void unregister(Class<? extends Event> eventClass)
Отменяет регистрацию класса события.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание методов

getRecordings

public List<Recording> getRecordings()
Возвращает неизменяемый список доступных записей.

Запись становится доступной после создания. Она становится недоступной в состоянии CLOSED, обычно после вызова Recording.close().

Возвращает:
список записей, не null

takeSnapshot

public Recording takeSnapshot()
Создает снимок всех доступных записанных данных.

Снимок представляет собой синтезированную запись в состоянии STOPPED. Если данные недоступны, возвращается запись размером 0.

Снимок обеспечивает стабильный доступ к данным для последующих операций (например, для изменения интервала или уменьшения размера данных).

В следующем примере показано, как создать снимок и записать подмножество данных в файл.

try (Recording snapshot = FlightRecorder.getFlightRecorder().takeSnapshot()) {
    if (snapshot.getSize() > 0) {
        snapshot.setMaxSize(100_000_000);
        snapshot.setMaxAge(Duration.ofMinutes(5));
        snapshot.dump(Paths.get("snapshot.jfr"));
    }
}
После завершения работы с данными вызывающий код должен закрыть запись.
Возвращает:
снимок всех доступных записанных данных, не null

register

public static void register(Class<? extends Event> eventClass)
Регистрирует класс события.

Если класс события уже зарегистрирован, вызов этого метода игнорируется.

Параметры:
eventClass — класс события для регистрации, не null
Исключения:
IllegalArgumentException — если класс является абстрактным или не является подклассом Event

unregister

public static void unregister(Class<? extends Event> eventClass)
Отменяет регистрацию класса события.

Если класс события не зарегистрирован, вызов этого метода игнорируется.

Параметры:
eventClass — класс события, регистрацию которого нужно отменить, не null
Исключения:
IllegalArgumentException — если класс является абстрактным или не является подклассом Event

getFlightRecorder

public static FlightRecorder getFlightRecorder() throws IllegalStateException
Возвращает Flight Recorder для платформы.
Возвращает:
экземпляр Flight Recorder, не null
Исключения:
IllegalStateException — если не удается создать Flight Recorder (например, если виртуальная машина Java (JVM) не поддерживает Flight Recorder или если не удается создать или получить доступ к репозиторию файлов)

addPeriodicEvent

public static void addPeriodicEvent(Class<? extends Event> eventClass, Runnable hook)
Добавляет обработчик периодического события.

Реализация обработчика должна завершаться как можно быстрее, чтобы не блокировать другие операции Flight Recorder. Обработчик должен создавать одно или несколько событий указанного типа. После добавления обработчика интервал вызова можно настроить с помощью параметра "period".

Параметры:
eventClass — класс, для которого должен выполняться обработчик, не null
hook — обработчик, не null
Исключения:
IllegalArgumentException — если класс не является подклассом Event, является абстрактным или обработчик уже добавлен
IllegalStateException — если класс события имеет аннотацию Registered(false) и не зарегистрирован вручную

removePeriodicEvent

public static boolean removePeriodicEvent(Runnable hook)
Удаляет обработчик периодического события.
Параметры:
hook — обработчик для удаления, не null
Возвращает:
true, если обработчик удален, иначе false

getEventTypes

public List<EventType> getEventTypes()
Возвращает неизменяемый список, содержащий все зарегистрированные на данный момент события.

По умолчанию события регистрируются при первом использовании, обычно при создании объекта события. Чтобы событие стало доступно заранее, регистрацию можно запустить вызовом метода register(Class).

Возвращает:
список событий, не null

addListener

public static void addListener(FlightRecorderListener changeListener)
Добавляет слушателя средства записи.

Если на момент добавления слушателя Flight Recorder уже инициализирован, перед возвратом из этого метода вызывается метод FlightRecorderListener.recorderInitialized(FlightRecorder).

Параметры:
changeListener — слушатель для добавления, не null

removeListener

public static boolean removeListener(FlightRecorderListener changeListener)
Удаляет слушателя средства записи.

Если один и тот же слушатель добавлен несколько раз, удаляется только один экземпляр.

Параметры:
changeListener — слушатель для удаления, не null
Возвращает:
true, если слушателя удалось удалить, иначе false

isAvailable

public static boolean isAvailable()
Возвращает true, если виртуальная машина Java (JVM) поддерживает Flight Recorder.

Этот метод позволяет быстро проверить, можно ли инициализировать Flight Recorder, не выполняя саму инициализацию. Значение может меняться во время выполнения, поэтому его нельзя безопасно кэшировать.

Возвращает:
true, если Flight Recorder доступен, иначе false
См. также:
  • для обратного вызова при инициализации Flight Recorder

isInitialized

public static boolean isInitialized()
Возвращает true, если Flight Recorder инициализирован.
Возвращает:
true, если Flight Recorder инициализирован, иначе false
См. также:
  • для обратного вызова при инициализации Flight Recorder

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и примеры рабочего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/jdk.jfr/jdk/jfr/FlightRecorder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API