gpt4 book ai didi

java - 如何使用java获取cpu使用率?

转载 作者:行者123 更新时间:2023-12-01 21:43:13 25 4
gpt4 key购买 nike

我想获取 cpu 使用率,以连续使用 java 更新我的数据库。在第一个循环中,此代码可读正确的 cpu 使用情况。之后,它返回小于 0 的错误值。所以,我坚持了下来。

我用的是jdk 1.8.124。

请告诉我如何持续获取 CPU 使用率。

import oshi.SystemInfo;
import oshi.hardware.CentralProcessor;
import oshi.hardware.HardwareAbstractionLayer;

来源

public static void main(String[] args) {
OperatingSystemMXBean bean = (com.sun.management.OperatingSystemMXBean) ManagementFactory
.getOperatingSystemMXBean();

while (true) {
System.out.println(bean.getProcessCpuLoad());
System.out.println(bean.getSystemCpuLoad());
try {
Thread.sleep(3000);
}
catch (Exception e){
System.out.println(e.toString());
break;
}
}

}

最佳答案

这是通过使用 Oshi lib 完成的。

我可以每 20 秒获取一次 CPU 使用率库

import oshi.SystemInfo;
import oshi.hardware.CentralProcessor;
import oshi.hardware.HardwareAbstractionLayer;

来源

private SystemInfo si = new SystemInfo();
private HardwareAbstractionLayer hal = si.getHardware();
private CentralProcessor cpu = hal.getProcessor();
long[] prevTicks = new long[TickType.values().length];

public static double getCPU()
{
double cpuLoad = cpu.getSystemCpuLoadBetweenTicks( prevTicks ) * 100;
prevTicks = cpu.getSystemCpuLoadTicks();
System.out.println("cpuLoad : " + cpuLoad);
return cpuLoad;
}

public static void main(String[] args) throws Exception{
while(true) {
// Sleep 20 seconds
tCPU = (int)getCPU();
}
}

关于java - 如何使用java获取cpu使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60985421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com