В настоящее время я использую метод 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 способ идентифицировать ядра, которые использует процесс, и рассчитывать загрузку ЦП на основе на этих конкретных ядрах?
Подробнее здесь: https://stackoverflow.com/questions/791 ... to-task-ma