В iOS, как я могу получить текущее использование ЦП из приложения, которое работает?

Я ищу способ получить числа использования ЦП, как в Instruments и Activity Monitor с C/C++/Obj-C, чтобы я мог провести некоторое автоматическое тестирование с ним. Я ищу где-то около 1 секунды детализации, хотя 100 мс было бы идеально. Другой способ взглянуть на этот вопрос - "Как Activity Monitor получает информацию, которую получает?".

Вот что я узнал до сих пор:

  • Многие из эквивалентов *nix не работают с iOS
    • sysctl не имеет KERN_CPTIME
    • В iOS нет файловой системы proc, поэтому я не могу использовать /proc/stat.
      • Это устраняет множество программ, таких как vmstat и iostat
  • Образец MacOSX не существует в iOS.

2 ответа

Я узнал ответ. Существует недокументированный API host_processor_info() со вкусом PROCESSOR_CPU_LOAD_INFO, который может дать вам количество системных, пользовательских, хороших и неактивных тиков. Вы должны вычесть количество тактов из предыдущего вызова, чтобы получить текущую загрузку ЦП. Не забудьте вызвать vm_deallocate для полученного массива.

Ты не можешь. Стандартный доступ Un*x к этой информации недоступен в приложении iOS.

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