我尝试通过API创建一个具有OpenJ9 Java的堆转储,它与Hotspot Java中的堆转储兼容,并且可以与相同的分析器工具一起使用。
我使用以下代码:
Class<PlatformManagedObject> clazz = (Class)Class.forName( "openj9.lang.management.OpenJ9DiagnosticsMXBean", null );
PlatformManagedObject openj9MBean = ManagementFactory.newPlatformMXBeanProxy( server, "openj9.lang.management:type=OpenJ9Diagnostics", clazz );
Method triggerDumpToFile = clazz.getMethod( "triggerDumpToFile", String.class, String.class );
triggerDumpToFile.invoke( openj9MBean, dumpAgent, file.getAbsolutePath() );我尝试了dumpAgent的所有4个值(java、snap、system和堆),但是输出格式不是*.hprof文件格式。
还有其他选择吗?
发布于 2022-07-22 07:21:47
如果您使用dumpAgent heap,那么它将创建一个*.phd文件(可移植的堆转储)。如果您想使用Eclipse来分析它,那么您需要安装IBM Monitoring and Diagnostic Tools插件。
更新站点ist:http://public.dhe.ibm.com/ibmdl/export/pub/software/websphere/runtimes/tools/dtfj/
详细信息:https://www.artificialworlds.net/blog/2016/02/23/how-to-analyse-a-phd-heap-dump-from-an-ibm-jvm/
发布于 2022-07-21 14:23:01
参考资料:https://github.com/eclipse-openj9/openj9/issues/6593
tldr -2备选方案:
使用MAT来可视化PHD格式的转储(https://www.eclipse.org/mat)
。
https://stackoverflow.com/questions/73067571
复制相似问题