Пакет jdk.jfr.consumer
В следующем примере программа выводит гистограмму всех образцов методов в записи.
public static void main(String[] args) throws IOException {
if (args.length != 1) {
System.err.println("Must specify a recording file.");
return;
}
RecordingFile.readAllEvents(Path.of(args[0])).stream()
.filter(e -> e.getEventType().getName().equals("jdk.ExecutionSample"))
.map(e -> e.getStackTrace())
.filter(s -> s != null)
.map(s -> s.getFrames().getFirst())
.filter(f -> f.isJavaFrame())
.map(f -> f.getMethod())
.collect(
Collectors.groupingBy(m -> m.getType().getName() + "." + m.getName() + " " + m.getDescriptor(),
Collectors.counting()))
.entrySet()
.stream()
.sorted((a, b) -> b.getValue().compareTo(a.getValue()))
.forEach(e -> System.out.printf("%8d %s\n", e.getValue(), e.getKey()));
}
Обработка null
В документации Javadoc для всех методов указано, принимают ли они или возвращают null. Обычно это обозначается как "not null". Если параметр null используется там, где это не допускается, выбрасывается java.lang.NullPointerException. Если параметр null передан методу, который выбрасывает другие исключения, например java.io.IOException, приоритет имеет java.lang.NullPointerException, если только в документации Javadoc для метода явно не указано, как обрабатывается null, то есть выбрасывается java.lang.IllegalArgumentException.
- Начиная с:
- 9
| Класс | Описание |
|---|---|
| EventStream | Представляет поток событий. |
| MetadataEvent | Событие, содержащее сведения о типах событий и конфигурациях. |
| RecordedClass | Записанный тип Java, например класс или интерфейс. |
| RecordedClassLoader | Записанный загрузчик классов Java. |
| RecordedEvent | Записанное событие. |
| RecordedFrame | Записанный кадр трассировки стека. |
| RecordedMethod | Записанный метод. |
| RecordedObject | Составной тип данных, состоящий из одного или нескольких полей. |
| RecordedStackTrace | Записанная трассировка стека. |
| RecordedThread | Записанный поток. |
| RecordedThreadGroup | Записанная группа потоков Java. |
| RecordingFile | Файл записи. |
| RecordingStream | Поток записи генерирует события из текущей JVM (виртуальной машины Java). |
© 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/consumer/package-summary.html