我需要使用常规时间间隔收集JVM的统计信息。后来,我需要记录JVM可用内存/可用内存,已用内存,总内存。
以下是我想到的两个选项。
ManagementFactory.getMemoryPoolMXBeans()并遍历每个MemoryPoolMXBean,最后使用MemoryPoolMXBean.getUsage()收集统计信息。
Runtime.freeMemory(),Runtime.maxMemory(),Runtime.totalMemory
这是收集统计信息的最佳方式。使用MemoryPoolMXBean.getUsage()或Runtime Class。
答案 0 :(得分:2)
这是关于在所有应用程序生命周期中监听内存使用情况,而不是在应用程序中的各个位置寻找信息。
正如Memory notifications in Java中所述,您有一种交互式方式来监控内存,因为您可以向MemoryMXBean
添加通知监听器。
因此,对于强大的本地检查,运行时可能就足够了,对于全局监控,MemoryMXBeans
是可行的方法。