如何使用JAVA获取虚拟机的可用内存大小(ram)

时间:2016-05-16 14:55:09

标签: java virtual-machine ram

我试图获取虚拟机上使用的百分比ram。

在我的计算机本地,我通过使用:

来实现它

Double FreeRamSize = (double) mxBean.getFreePhysicalMemorySize() Double TotalRamSize = (double) mxBean.getTotalPhysicalMemorySize()

它完美无缺。 但是,如果我在虚拟机上部署我的应用程序,我将只有总物理内存大小,而我的FreeRamSize将始终返回0.我没有在互联网上找到任何提示。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您不需要修改内存信息代码来运行虚拟机,因为虚拟机和物理机RAM之间的底层差异应该与Java进程完全无关。

只是为了踢,我在我自己的虚拟机上运行它没有任何问题。

double GiB = Math.pow(2, 30);
OperatingSystemMXBean osBean = ManagementFactory.getPlatformMXBean(OperatingSystemMXBean.class);

Double freeRamSize = (double) osBean.getFreePhysicalMemorySize();
Double totalRamSize = (double) osBean.getTotalPhysicalMemorySize();

System.out.println(freeRamSize / GiB + " / " + totalRamSize / GiB);

1.8224868774414062 / 3.9995040893554688