我们经常有这样的需求,想得到系统CPU的基本信息、使用率等等。使用Sigar可以很好的完成这一需求。
通过Sigar我们可以获得CPU的基本信息有:vendor、model、mhz、cacheSize;CPU的统计信息有:user进程占用的百分比、sys进程占用的百分比、nice进程占用的百分比、idle进程占用的百分比、wait进程占用的百分比。
输出:
下载地址: Sigar相关jar下载地址 最新下载地址(包含类库)
通过Sigar我们可以获得CPU的基本信息有:vendor、model、mhz、cacheSize;CPU的统计信息有:user进程占用的百分比、sys进程占用的百分比、nice进程占用的百分比、idle进程占用的百分比、wait进程占用的百分比。
下面通过例子说明用法:
package lab.sigar;
import org.hyperic.sigar.Cpu;
import org.hyperic.sigar.CpuInfo;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import com.thoughtworks.xstream.XStream;
/**
* Cpu数据
*
* 使用Sigar获得CPU的基本信息、使用百分比、使用时间
*
*/
public class CpuData {
private CpuInfo info;
private CpuPerc perc;
private Cpu timer;
public CpuData() {
}
public void populate(Sigar sigar) throws SigarException {
info = sigar.getCpuInfoList()[0];
perc = sigar.getCpuPerc();
timer = sigar.getCpu();
}
public static CpuData gather(Sigar sigar) throws SigarException {
CpuData data = new CpuData();
data.populate(sigar);
return data;
}
public static void main(String[] args) throws Exception {
Sigar sigar = new Sigar();
CpuData cpuData = CpuData.gather(sigar);
XStream xstream = new XStream();
xstream.alias("CpuData", CpuData.class);
System.out.println(xstream.toXML(cpuData));
}
}
输出:
<CpuData>
<info>
<vendor>Intel</vendor>
<model>Pentium M</model>
<mhz>1862</mhz>
<cacheSize>-1</cacheSize>
</info>
<perc>
<user>0.12574850299401197</user>
<sys>0.031936127744510975</sys>
<nice>0.0</nice>
<idle>0.8423153692614771</idle>
<wait>0.0</wait>
</perc>
<timer>
<user>932250</user>
<sys>520375</sys>
<nice>0</nice>
<idle>6366031</idle>
<wait>0</wait>
<total>7818656</total>
</timer>
</CpuData>
下载地址: Sigar相关jar下载地址 最新下载地址(包含类库)