您需要一些Java代码来获取JVM的内存转储以监控应用程序性能。是否可以使用java代码分析内存转储。我需要分析在不同互连网络上可用的几个JVM的内存转储。
答案 0 :(得分:4)
您可以通过获取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,它可以返回有关各种内存空间的几个有用信息