Расчет загрузки процессора htop - PullRequest
0 голосов
/ 03 декабря 2018

Первый пост в StackOverflow.Я хотел бы знать, как htop рассчитывает загрузку своего процессора для Darwin (MacOSX).

Я просмотрел исходный код, и вот что я из него вывел:

  1. Рассчитать общую загрузку ЦП для всех ядер (иначе называемую GlobalDiff)

    Global Diff = Общая загрузка ЦП для всех ядер и состояний ЦП во время T2 - Общая загрузка ЦП для всех ядер и состояний ЦП во время T1

Где состояния процессора = время пользователя, системное время, точное время и время простоя.Число ядер для моей машины = 0-7

Поскольку это значение Global Diff является ВСЕГО значением для всей системы, нам необходимо получить коэффициент использования ЦП для каждого ядра, который можно получить по следующей формуле:

PerCore CPU Total Load = GlobalDiff / NoOfCores.
Рассчитать общую загрузку ЦП на процесс.

Delta Diff = (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

Вот откуда я получил большую часть кода.Пожалуйста, сообщите.

Заранее спасибо.

...