В настоящее время я использую метод getProcessCpuLoadCumulative() для получить совокупное использование ЦП процессом, но возвращаемые значения значительно отличаются от значений, отображаемых в диспетчере задач. Я попробовал несколько подходов, но так и не смог получить совпадающие значения.
Вот код, который я использую для расчета использования ЦП:
Код: Выделить всё
public String getCPU() {
lastCPUCheckTime += Gdx.graphics.getDeltaTime();
if (lastCPUCheckTime >= UPDATE_INTERVAL) {
lastCPUCheckTime = 0;
// Get current process info
osProcess = operatingSystem.getProcess(operatingSystem.getProcessId());
// Get cumulative CPU usage
double cpuUsage = osProcess.getProcessCpuLoadCumulative(osProcess) * 100;
cachedCPU = String.format("%.2f%%", cpuUsage);
}
return cachedCPU;
}
Как правильно рассчитать загрузку ЦП конкретный процесс с OSHI, чтобы значение соответствовало значению, отображаемому в диспетчере задач Windows? А более конкретно:
- Есть ли способ учесть «логические процессоры» и ядра, на которых выполняется процесс, чтобы получить более точное считывание?
- Предоставляет ли OSHI возможность идентифицировать ядра, которые использует процесс, и рассчитывать загрузку ЦП на основе этих конкретных ядер?< /p>
Подробнее здесь: https://stackoverflow.com/questions/791 ... to-task-ma