通常我使用Eclipse MAT GUI在堆转储上运行OQL来提取数据。我只是想知道是否有任何方法可以使用ParseHeapDump实用程序运行任何OQL?基本上,我想超越这四个标准报告,运行我自己的OQL来找出原因。
您必须编写自己的报告,然后才能执行OQL。该报告是一个小型XML文件。参见MAT论坛帖子:hprof 的命令行处理
我认为您也可以在报告XML中使用${}替换从命令行传入实际的OQL命令,但您需要小心替换和转义引号等。
Eclipse Memory Analyzer 1.11将使用org.eclipse.mat.api:query
在报告中运行单个查询。不幸的是,反斜杠和双引号的命令行转义使语法看起来很复杂,但也有帮助。