我正在创建一个计划执行程序来读取JVM的内存使用情况。我有两种方法可以在正在运行的JVM中获取内存统计信息 - Runtime& MemoryMXBean,它们的方法之间有以下对应关系:
memoryMxBean.getHeapMemoryUsage().getUsed() <=> runtime.totalMemory() - runtime.freeMemory()
memoryMxBean.getHeapMemoryUsage().getCommitted() <=> runtime.totalMemory()
memoryMxBean.getHeapMemoryUsage().getMax() <=> runtime.maxMemory()
除了MemoryMXBean提供的额外非堆内存使用情况信息之外,还有什么理由可以让我更喜欢它而不是运行时,反之亦然?
答案 0 :(得分:2)
没有。 JMX bean可以在外部访问,适用于管理工具 hyperic(甚至是nagios) - 无论如何都会委托给Runtime。