Как получить отчет об утечке памяти Eclipse MAT в формате JSON/XML?

avatar
JavaUser
9 августа 2021 в 03:06
96
2
0

Я пытаюсь добавить профилирование памяти Java в свой конвейер devops. Для этой цели я использую сценарий командной строки Eclipse MAT. Как только я предоставлю файл hprof в качестве входных данных, он создаст подозрительный отчет. Мне нужно проанализировать этот HTML-отчет и принять решение на его основе. Это громоздко, а также разбор не структурирован. Мне нужен либо отчет XML/JSON, либо я хочу увидеть, как фактический отчет генерируется Eclipse MAT. Если бы я обнаружил, что могу получить код и настроить его в соответствии со своими потребностями. Любые предложения по этому поводу.

Источник
suv3ndu
10 августа 2021 в 15:47
0

Вы, конечно, можете разветвить репозиторий MAT[1] и попытаться настроить отчеты, но я не знаю, сколько усилий вам нужно для этого приложить. У меня было подобное требование несколько лет назад. Я использовал веб-скраппинг для этих файлов результатов HTML, чтобы извлечь необходимую информацию и сохранить их в базе данных для последующего использования. В то время я использовал Beautiful Soup[2]. [1] git.eclipse.org/c/mat/org.eclipse.mat.git [2] crummy.com/software/BeautifulSoup/bs4/doc

Ответы (2)

avatar
AnEmortalKid
13 апреля 2022 в 18:58
0

Другой вариант — реализовать собственное расширение: https://wiki.eclipse.org/MemoryAnalyzer/Extending_Memory_Analyzer#Calling_One_Query_from_Another и вызвать запрос leak_hunter. Затем прочитайте детали IResult и преобразуйте их в объект json.

avatar
user13762112
10 сентября 2021 в 07:45
1

Eclipse Memory Analyzer имеет открытый исходный код, и весь код находится здесь: https://git.eclipse.org/c/mat/org.eclipse.mat.git

Код подозреваемых в утечке находится в https://git.eclipse.org/c/mat/org.eclipse.mat.git/tree/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/FindLeaksQuery.java и https://git.eclipse.org/c/mat/org.eclipse.mat.git/tree/plugins/org.eclipse.mat.api/src/org/eclipse/mat/inspections/LeakHunterQuery.java

Отчет о подозрениях на утечку представляет собой чистый HTML, прошедший проверку HTML, что упростит синтаксический анализ.

Ваш запрос на отчет в формате XML/JSON обоснован, но в настоящее время MAT не предоставляет его. Предусмотрена возможность его добавления с помощью точки расширения отрисовки http://help.eclipse.org/latest/topic/org.eclipse.mat.ui.help/doc/org_eclipse_mat_report_renderer.html . Уже есть средства визуализации HTML, CSV и TXT, поэтому можно добавить точку расширения JSON. Затем необходимо принять проектные решения о том, как представлять деревья и таблицы в JSON и как преобразовать HTML, скажем, из желтых полей отчета о подозреваемых утечках в JSON.

Как я знаю других людей, которым нужен отчет в формате JSON, может быть целесообразно обсудить это более официально с сообществом MAT, либо на форуме https://www.eclipse.org/forums/index. php?t=thread&frm_id=186 или на Bugzilla, или в списке рассылки разработчиков, если вы предлагаете помощь в написании кода.