簡體   English   中英

Java獲取內核的CPU使用率百分比

[英]Java get CPU usage percentage of cores

我想獲取所有內核的總CPU使用率。 我需要打印如下內容:

Cpu 1: 33%
Cpu 2: 12%
Cpu 3: 66%
Cpu 4: 100%

我嘗試使用此代碼:

OperatingSystemMXBean operatingSystemMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
int availableProcessors = operatingSystemMXBean.getAvailableProcessors();
long prevUpTime = runtimeMXBean.getUptime();
long prevProcessCpuTime = operatingSystemMXBean.getProcessCpuTime();
double cpuUsage;
try
{
    Thread.sleep(500);
}
catch (Exception ignored) { }

operatingSystemMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
long upTime = runtimeMXBean.getUptime();
long processCpuTime = operatingSystemMXBean.getProcessCpuTime();
long elapsedCpu = processCpuTime - prevProcessCpuTime;
long elapsedTime = upTime - prevUpTime;

cpuUsage = Math.min(99F, elapsedCpu / (elapsedTime * 10000F * availableProcessors));
System.out.println("Java CPU: " + cpuUsage);

但是這段代碼給了我這樣的輸出: Java CPU: 27.504911422729492 有人可以幫我弄這個嗎?

JavaSysMon使用特定於操作系統的方法,例如,在Linux上,它解析/proc/cpuinfo以枚舉內核。 對於實際的CPU核心利用率,它將解析/proc/stat文件(請參閱LinuxMonitor )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM