#java #jfr
Вопрос:
Recording
позволяет сохранять записанные данные в файл с помощью dump()
метода (как показано в примере ниже, скопированном из javadoc). Есть ли способ, как получить такие записанные данные в виде byte[]
.
Желательно без внешних зависимостей. Я знаю о реализации пользовательских функций в памяти FileSystem
.
Configuration c = Configuration.getConfiguration("default");
Recording r = new Recording(c);
r.start();
System.gc();
Thread.sleep(5000);
r.stop();
r.dump(Files.createTempFile("my-recording", ".jfr"));
Ответ №1:
Вы что-то ищете getStream
? Это единственный API Recording
, который может предложить способ сделать это. Кроме этого, вам в значительной степени придется использовать dump
Path
либо файловую систему в памяти , либо, возможно, даже реальный временный файл.
Комментарии:
1. Но будьте осторожны, запись::GetStream() не будет работать с записью в памяти. Данные всегда должны быть на диске. Javadoc для JDK 17, чтобы прояснить это. docs.oracle.com/en/java/javase/17/docs/api/jdk.jfr/jdk/jfr/. …