Как я могу получить использование процессора для процесса, если я знаю только PID?
MAXOS X
Я просмотрел исходные коды лучших утилит для MACOSX и
Я нашел несколько важных функций в libtop.c
/* Iterate through all processes and update their statistics. */
libtop_p_proc_table_read(boolean_t reg)
libtop_p_task_update()
/* Get CPU usage statistics. */
libtop_pinfo_update_cpu_usage()
Проблема в том, что я не понимаю, как они получают% загрузки ЦП от этого огромного количества
Специфичные для MACOS системные вызовы "mach kernel"
У кого-нибудь есть решение для этого?
В качестве источника они получают system_time, user_time, total_time.
I total_time это время от запуска процесса или как?
Или может быть total_time равен 1 сек.
Например, мои результаты: для браузера Opera:
pid: 1214, пользователь: 653,517582сек, система: 193,597306сек, всего: 847,118888сек
Правильная информация из верхней утилиты:
КОМАНДА ПИДА% ВРЕМЯ ЦП
1214 - Опера 8,0 14: 04,52
Я не понимаю, как конвертировать мои результаты в 8,0%.
Общее время здесь представляет собой сумму времени пользователя и системного времени.
Общее время правильное: 847сек составляет около 14мин 04 сек
Чтобы получить процент использования процессора, мне нужно что-то вроде простоя для всего процесса.
Я уже провел целый день, но без какого-либо аванса.