Sigar (System Information Gatherer And Reporter) 是一個跨平台的系統信息收集庫,提供 Java/JNI 接口,可獲取進程、系統、文件系統、網絡等豐富指標。
<dependency>
<groupId>org.hyperic</groupId>
<artifactId>sigar</artifactId>
<version>1.6.4</version>
</dependency>
// 代碼
Sigar sigar = new Sigar();
long pid = 12345; // 目標進程 PID
ProcCpu cpu = sigar.getProcCpu(pid);
ProcMem mem = sigar.getProcMem(pid);
ProcState state = sigar.getProcState(pid);
System.out.println("CPU 用戶態: " + cpu.getUser() + "ms");
System.out.println("常駐內存: " + mem.getResident() / 1024 + " KB");
System.out.println("進程狀態: " + state.getName());
需要對特定進程進行長時間、多維度性能采集並繪製趨勢圖的場景,如排查搜狗輸入法 CPU 突增問題。