我正在尝试开发一个小型测试应用程序,它运行一些命令,每隔X秒测量一次CPU使用率,内存使用率和网络利用率,如Windows任务管理器中所示。 应用程序将用java编写,并且应该在windows和linux上运行。 我发现许多人使用Sigar API来轻松提取系统信息。 我发现了如何使用它来提取内存使用情况
Mem mem = sigar.getMem();
mem.getUsed();
我仍然不确定使用的内存与使用的实际内存之间有什么区别,有人可以详细说明这个吗?
此外,我仍然不确定如何提取Cpu使用率和网络利用率。 对于Cpu我试过:
cpu = sigar.getCpuPerc();
cpu.getCombined();
但数字似乎与我在任务管理器中看到的非常不同。 我应该使用哪种API来获得所需的结果? 对于网络利用,我不知道。
答案 0 :(得分:1)
使用的内存是指分配的内存大小,实际使用的内存是实际使用的内存,它减少了内核和其他区域的内存。
对于CPU,我也想出了不同的值,并看到一些博客建议乘以100.所以我做了,现在价值非常相似...... http://code.google.com/p/starfire/source/browse/trunk/starfire/src/main/java/es/upm/dit/gsi/starfire/capability/systemMonitor/CpuMonitor.java?spec=svn279&r=279
网络我还在搜索。