如何在java中监视可用内存(包括缓存和缓存)?

前端之家收集整理的这篇文章主要介绍了如何在java中监视可用内存(包括缓存和缓存)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经搜索了可能的解决方案,例如 How to monitor the computer’s cpu,memory,and disk usage in Java?.但是在缓冲区和缓存中使用的内存没有在任何地方提及?

例如,在linux上,输出free -m

             total       used       free     shared    buffers     cached
Mem:          2011       1835        175          0        309        847
-/+ buffers/cache:        678       1333
Swap:         1998          0       1998

我已经测试了sigar输出,它报告了175 MB的可用内存.

这个问题的原因是什么时候操作系统的内存很少?在以前的free -m输出中,175MB似乎相当低;但是通过添加缓冲区和缓存,显然可用内存实际上是2 GB的1333 MB.

总而言之,使用java可以获得1333 MB的值作为可用内存的值吗?正如我已经提到的,到目前为止,我只知道如何获得175 MB的价值.

解决方法

如果您正在尝试获取操作系统本身(而不是JVM)的内存统计信息,则可以使用 JNAJNI将平台特定的本机API调用直接映射到操作系统.

猜你在找的Java相关文章