在Windows / linux上使用java提取CPU使用率,内存使用率和网络利用率

时间:2012-12-03 13:38:47

标签: java performance memory cpu-usage network-utilization

我正在尝试开发一个小型测试应用程序,它运行一些命令,每隔X秒测量一次CPU使用率,内存使用率和网络利用率,如Windows任务管理器中所示。 应用程序将用java编写,并且应该在windows和linux上运行。 我发现许多人使用Sigar API来轻松提取系统信息。 我发现了如何使用它来提取内存使用情况

 Mem mem = sigar.getMem();
 mem.getUsed();

我仍然不确定使用的内存与使用的实际内存之间有什么区别,有人可以详细说明这个吗?

此外,我仍然不确定如何提取Cpu使用率和网络利用率。 对于Cpu我试过:

cpu = sigar.getCpuPerc();
cpu.getCombined();

但数字似乎与我在任务管理器中看到的非常不同。 我应该使用哪种API来获得所需的结果? 对于网络利用,我不知道。

1 个答案:

答案 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

网络我还在搜索。