import java.util.Map;
import org.hyperic.sigar.Cpu;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.NetInfo;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
public class CPUUsage {
public static void main(String[] args) throws SigarException {
Sigar sigar = new Sigar();
NetInfo netInfo = sigar.getNetInfo();
System.out.println("網路資訊:");
System.out.println("Gateway:" + netInfo.getDefaultGateway());
System.out.println("Domain name:" + netInfo.getDomainName());
System.out.println("Primary dns:" + netInfo.getPrimaryDns());
System.out.println("--------------------------------------");
System.out.println("PID:" + sigar.getPid()); // 輸出當前 Java 進程 的 PID
Map map = sigar.getProcEnv(sigar.getPid()); // 進程環境
System.out.println("--------------------------------------");
System.out.println("CPU :");
Cpu cpu = sigar.getCpu();
System.out.println("Idle: " + cpu.getIdle()); // 取得系統 CPU 空閒時間
System.out.println("Irq: " + cpu.getIrq());
System.out.println("Nice: " + cpu.getNice());
System.out.println("Soft irq: " + cpu.getSoftIrq());
System.out.println("Stolen: " + cpu.getStolen());
System.out.println("Sys: " + cpu.getSys());
System.out.println("Total: " + cpu.getTotal());
System.out.println("User: " + cpu.getUser());
System.out.println();
//------------------------------------------
new Thread(() -> {
while (true) {
try {
System.out.println("--------------------------------------");
CpuPerc perc = sigar.getCpuPerc();
System.out.println("整體 CPU 使用率:");
System.out.print("閒置:" + (int) (perc.getIdle() * 100) + " %");
System.out.print("\t");
System.out.println("使用:" + (int) (perc.getCombined() * 100) + " %");
System.out.println("----------");
CpuPerc[] cpuPercs = sigar.getCpuPercList();
System.out.println("所有 CPU 使用率:");
for (CpuPerc cpuPerc : cpuPercs) {
System.out.print("閒置:" + (int) (cpuPerc.getIdle() * 100) + " %");
System.out.print("\t");
System.out.println("使用:" + (int) (cpuPerc.getCombined() * 100) + " %");
}
Thread.sleep(1000);
} catch (Exception e) {
}
}
}).start();
}
}
輸出結果:
網路資訊:
Gateway:0.0.0.0
Domain name:
Primary dns:192.168.1.1
--------------------------------------
PID:1732
--------------------------------------
CPU :
Idle: 29208608
Irq: 91062
Nice: 0
Soft irq: 0
Stolen: 0
Sys: 1969232
Total: 85056364
User: 2844405
--------------------------------------
整體 CPU 使用率:
閒置:74 % 使用:24 %
----------
所有 CPU 使用率:
閒置:90 % 使用:9 %
閒置:100 % 使用:0 %
閒置:93 % 使用:6 %
閒置:100 % 使用:0 %
--------------------------------------
整體 CPU 使用率:
閒置:96 % 使用:3 %
----------
所有 CPU 使用率:
閒置:96 % 使用:3 %
閒置:92 % 使用:7 %
閒置:100 % 使用:0 %
閒置:100 % 使用:0 %
--------------------------------------
整體 CPU 使用率:
閒置:97 % 使用:2 %
----------
所有 CPU 使用率:
閒置:95 % 使用:4 %
閒置:95 % 使用:4 %
閒置:98 % 使用:1 %
閒置:100 % 使用:0 %
留言列表