Класс FlightRecorder
public final class FlightRecorder extends Object
Этот класс предоставляет методы, необходимые для создания, запуска, остановки и уничтожения записей.
- Начиная с:
- 9
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
static void |
addListener |
Добавляет прослушиватель средства записи. |
static void |
addPeriodicEvent |
Добавляет обработчик для периодического события. |
List |
getEventTypes() |
Возвращает неизменяемый список, содержащий все зарегистрированные в данный момент события. |
static FlightRecorder |
getFlightRecorder() |
Возвращает Flight Recorder для платформы. |
List |
getRecordings() |
Возвращает неизменяемый список доступных записей. |
static boolean |
isAvailable() |
Возвращает true, если виртуальная машина Java (JVM) поддерживает Flight Recorder. |
static boolean |
isInitialized() |
Возвращает true, если Flight Recorder инициализирован. |
static void |
register |
Регистрирует класс события. |
static boolean |
removeListener |
Удаляет прослушиватель средства записи. |
static boolean |
removePeriodicEvent |
Удаляет обработчик периодического события. |
Recording |
takeSnapshot() |
Создает снимок всех доступных записанных данных. |
static void |
unregister |
Отменяет регистрацию класса события. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли этот объект какому-либо другому объекту. |
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 |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или прерывания, либо до истечения заданного интервала реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова 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, не
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 - См. также:
isInitialized
public static boolean isInitialized()
true, если Flight Recorder инициализирован.- Возвращает:
-
true, если Flight Recorder инициализирован, иначе —false - См. также:
© 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.