Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного интервала реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного интервала реального времени.

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

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, 2026, 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.

Spec-Zone.ru

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