1

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

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

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

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

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

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

4

1 回答 1

1

使用的内存是指分配的内存大小,实际使用的内存是分配的内存中实际使用的内存,它减少了一些内核和其他区域的内存。

对于 CPU,我还发现了不同的值,并看到一些博客建议乘以 100。所以我做了,现在值非常相似...... http://code.google.com/p/starfire/源/浏览/主干/starfire/src/main/java/es/upm/dit/gsi/starfire/capability/systemMonitor/CpuMonitor.java?spec=svn279&r=279

网络我还在寻找。

于 2012-12-26T11:06:06.730 回答