如何在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调用直接映射到操作系统.

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...