Как получить использование процессора в ядре Mach?

Я пытаюсь получить использование процессора в ядре Mach, но я всегда получаю один и тот же вывод. Что я делаю не так?

static mach_port_t port;

Получить статистику загрузки процессора

int
load_get(host_info_t r_load) {
   mach_msg_type_number_t count;

   count = HOST_CPU_LOAD_INFO_COUNT;
   host_statistics(port, HOST_CPU_LOAD_INFO, r_load, &count);

   return 0;
}


int main(void) {

   port = mach_host_self();

   host_cpu_load_info_data_t cpu;

   load_get((host_info_t)&cpu);

   unsigned long long userticks, systicks, idleticks, totalticks;
   unsigned long long userwhole, userpart, syswhole, syspart, idlewhole, idlepart;

Собирать процессорные галочки

   userticks = cpu.cpu_ticks[CPU_STATE_USER] + cpu.cpu_ticks[CPU_STATE_NICE];
   systicks = cpu.cpu_ticks[CPU_STATE_SYSTEM];
   idleticks = cpu.cpu_ticks[CPU_STATE_IDLE];

   totalticks = userticks + systicks + idleticks;

   return 0;
}

Спасибо!

0 ответов

Другие вопросы по тегам