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