Расчет загрузки процессора htop
Первый пост на Stackru. Я хотел бы знать, как htop рассчитывает загрузку процессора для Darwin (MacOSX).
Я прошел через исходный код, и вот что я из него сделал вывод:
Рассчитать общую загрузку ЦП для всех ядер (иначе называется GlobalDiff)
Global Diff = общая загрузка процессора для всех ядер и состояний процессора в момент времени T2 - общая загрузка процессора для всех ядер и состояний процессора в момент времени T1
Где состояния процессора = время пользователя, системное время, хорошее время и время простоя. Сердечники для моей машины = 0-7
Поскольку это значение Global Diff является ВСЕГО значением для всей системы, нам необходимо получить коэффициент использования ЦП для каждого ядра, который можно получить по следующей формуле:
PerCore CPU Total Load = GlobalDiff / NoOfCores.
- Рассчитать общую загрузку процессора на процесс.
Разница в дельте = (UserTime2 + SystemTime2) - (UserTime1 + SystemTime1)
CPU % = DeltaDiff / PerCoreCPU Total Load
=> CPU % (unscaled) = (DeltaDiff * NoOfCores)/(PerCoreCPU Total Load)
В заключение:
CPU% (масштабируется до 100%) = CPU % (немасштабируется) / 100000.0
Может ли кто-нибудь сказать мне значение вышеприведенного утверждения. Делит ли немасштабированный% ЦП на (TH_USAGE_SCALE * 100). Я искал это некоторое время, и я не могу получить документацию о значении TH_USAGE_SCALE.
https://github.com/hishamhm/htop/blob/master/darwin/DarwinProcess.c
Вот откуда я получил большую часть кода. Пожалуйста, порекомендуйте.
Заранее спасибо.