Java 使用Sigar库获取进程CPU使用率
我一直试图通过使用获得进程CPU使用率,但我总是得到0的值,即使它应该更高 我每秒钟都在计时器上做这件事:Java 使用Sigar库获取进程CPU使用率,java,jvm,cpu,cpu-usage,sigar,Java,Jvm,Cpu,Cpu Usage,Sigar,我一直试图通过使用获得进程CPU使用率,但我总是得到0的值,即使它应该更高 我每秒钟都在计时器上做这件事: Sigar sigar = new Sigar(); long pid = find.find("Exe.Name.ct=myprocess.exe"); ProcCpu cpu = sigar.getProcCpu(pid); System.out.println(cpu.getPercent()); 我一直在看,但它似乎没有正常工作,加上像总时间\u更新\u限制之类的东西有点神秘。
Sigar sigar = new Sigar();
long pid = find.find("Exe.Name.ct=myprocess.exe");
ProcCpu cpu = sigar.getProcCpu(pid);
System.out.println(cpu.getPercent());
我一直在看,但它似乎没有正常工作,加上像总时间\u更新\u限制
之类的东西有点神秘。
我也看了一下,但它没有给我提供任何新的东西
在使用Sigar之前,是否有人尝试过监视进程CPU?
实现它的方法是什么
谢谢。像这样使用它
public static void main(String args[]) {
try {
final Sigar sigar = new Sigar();
while (true) {
ProcCpu cpu = sigar.getProcCpu("Exe.Name.ct=eclipse.exe");
System.out.println(cpu.getPercent());
}
} catch (SigarException ex) {
ex.printStackTrace();
}
}
这是我得到的一个示例输出
0.0
0.11450381679389313
0.12213740458015267
0.10714285714285714
0.0
0.0
0.0
有时,某些进程总是消耗零百分比的CPU。因此,转到任务管理器,找到一个CPU使用率高的进程,并将该进程的exe放到代码中的相关位置