Первый пост в StackOverflow.Я хотел бы знать, как htop рассчитывает загрузку своего процессора для Darwin (MacOSX).
Я просмотрел исходный код, и вот что я из него вывел:
Рассчитать общую загрузку ЦП для всех ядер (иначе называемую 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
Вот откуда я получил большую часть кода.Пожалуйста, сообщите.
Заранее спасибо.