我有一个需求,需要定期收集JVM的统计信息。随后,我需要记录JVM可用内存/空闲内存、已使用内存和总内存。
以下是我考虑的两种选项。
使用ManagementFactory.getMemoryPoolMXBeans()迭代每个MemoryPoolMXBean,并最终使用MemoryPoolMXBean.getUsage()收集统计信息。
使用Runtime.freeMemory()、Runtime.maxMemory()和Runtime.totalMemory。
哪种方法是收集统计信息的最佳方式?是使用MemoryPoolMXBean.getUsage()还是Runtime类?