【发布时间】:2014-01-24 09:51:12
【问题描述】:
您好,我需要一些 Java 代码来获取 JVM 的内存转储以监控应用程序性能。是否可以使用 java 代码分析内存转储。我需要分析不同互连网络上可用的多个 JVM 的内存转储。
【问题讨论】:
-
我不明白为什么这个问题被搁置了。 “我需要一些 Java 代码来获取内存转储”表明这是一个关于代码示例的问题。
标签: java memory-leaks jvm
您好,我需要一些 Java 代码来获取 JVM 的内存转储以监控应用程序性能。是否可以使用 java 代码分析内存转储。我需要分析不同互连网络上可用的多个 JVM 的内存转储。
【问题讨论】:
标签: java memory-leaks jvm
您可以通过获取 HotSpotDiagnosticMXBean 实例(命名)并调用 dumpHeap() 方法来实现:
MBeanServer server = ManagementFactory.getPlatformMBeanServer();
HotSpotDiagnosticMXBean bean = ManagementFactory.newPlatformMXBeanProxy(server,
"com.sun.management:type=HotSpotDiagnostic", HotSpotDiagnosticMXBean.class);
bean.dumpHeap("filename", /* live objects */ true);
如果您需要比较内存使用情况,另一种选择是获取MemoryPoolMXBean,它可以返回有关各种内存空间的一些有用信息
【讨论】: