我正在尝试将 Java 内存分析添加到我的 devops 管道中。为此,我正在使用 Eclipse MAT 命令行脚本。一旦我提供 hprof 文件作为输入,它就会生成可疑报告。我需要解析这个 HTML 报告并据此做出决定。这很麻烦,而且解析也不是结构化的。我想要 XML/JSON 报告,或者我想看看 Eclipse MAT 是如何生成实际报告的。如果我发现我可以获取代码并根据我的需要进行自定义。对此有任何建议。
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。爪哇
泄漏嫌疑人报告是干净的 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 或开发者邮件列表(如果您提议帮助编写代码)。