我正在尝试获取系统上运行的所有JVM的内存统计信息,而无需启用Java Management Extensions(JMX)。
我有以下使用 Runtime 和 MemoryMXBean 的代码。但是,我使用这些API的方式似乎只是为运行代码的JVM重新调整内存统计信息。
Runtime runtime = Runtime.getRuntime();
long maxMemory = runtime.maxMemory();
long allocatedMemory = runtime.totalMemory();
long freeMemory = runtime.freeMemory();
MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
Long memHeapUsed = memoryMXBean.getHeapMemoryUsage().getUsed();
Long memHeapMax = memoryMXBean.getHeapMemoryUsage().getMax();
可以在不启用JMX的情况下获取内存统计信息,例如可用和使用的堆内存分配吗?