Java Flight Recorder теперь является частью OpenJDK 11 и предлагает использование пользовательских событий. После успешной записи я хочу повторно использовать информацию в событиях (особенно мои собственные пользовательские события), но почему-то не могу прочитать содержимое поля события. Я могу видеть только аннотации, название и тип полей.
Кто-нибудь знает, возможно ли это на самом деле?
JFR имеет потребительский пакет, который позволяет читать информацию из файлов. Некоторые функции я уже применяю.
Что я уже пробовал
Сначала я получаю доступ ко всем полям события:
event.getFields();
Затем я перебираю поля и получаю доступ к их значениям несколькими способами:
a) eventField.getDescriptor();
b) eventField.getContentType();
Просто глядя на их имена, очевидно, что никто из них не дал мне содержания. К сожалению, мне не удалось найти ни одной функции, которая могла бы помочь.
Что я тоже пробовал
Я также попробовал очень прямую идею: прочитать содержимое в режиме отладки. Я думал, что это даст мне некоторое представление о том, как программно извлекать эту информацию.
К сожалению, JFR удалось закодировать свои записи таким образом, что во время процедуры отладки никто не может прочитать информацию, пока кто-нибудь не извлечет их программно и не получит в качестве локальной переменной (пример: карта).
Для вашей информации я использовал эту инструкцию по реализации настраиваемого события.