2016-05-19 14 views
1

Я узнал, что разбор JFR на Java может выполняться с помощью неподдерживаемых парсеров, таких как парсер JMC, с помощью jrockit от this. Также я понял, что во время записи полет будет много событий.JMC-парсер для дампов Java JFR с использованием Jrockit

Если я хочу получить данные из различных событий, таких как трассировка стека на вкладке «События», «Горячий» на вкладке «Код», «Дерево вызовов» на вкладке «Код» и т. Д. И т. Д. Как фильтровать? Example image

например, я смог фильтровать дерево вызовов, используя следующий код, как указано в jfr-пламени-графике.

final String EVENT_TYPE = "Method Profiling Sample"; 
IView view = recording.createView(); 
for(IEvent event : view){ 
if(EVENT_TYPE.equals(event.getEventType().getName())){ 
    FLRStackTrace flrStackTrace = (FLRStackTrace) event.getValue("(stackTrace)"); 

Здесь Тип события - метод профилирования выборки; Идентификатор - (stacktrace);

Итак, если я хочу получить методы stacktrace/hot/etc, какие события/идентификаторы мне нужно захватить? Есть ли какие-либо документы для этого?

+0

Существует нет документации для этого. – Klara

ответ

1

Для этого нет никакой документации. Если вы хотите извлечь stacktraces, график jfr-flame-graph - очень хороший пример. Разница между событиями/трассировкой стека и методами «Кода/Горячие» заключается только в том, что на вкладке «Горячие методы» используется только пример «Профилирование метода», вкладки «События» являются более общими и будут отображать типы событий, которые вы выбрали в представлении «Типы событий». Дерево кода/вызова такое же, как и «Горячие» методы, но «вверх ногами».

Чтобы узнать, какие другие события доступны, вы можете использовать интерфейс JMC. Там есть функция Designer view (Click Window/Show View/Designer). Если у вас открыта запись, вы можете использовать красную кнопку остановки, чтобы перейти в режим дизайна вкладки, которая вас интересует, затем щелкните правой кнопкой мыши интересующий компонент, чтобы узнать, какие типы и атрибуты событий он использует.

+1

Спасибо Кларе, я смог извлечь данные из этих полей из трюка и отладить код. – Vithulan