Как получить более высокую точность «CPU%», чем у команды TOP?

Когда я использую команду TOP, я мог получить следующую информацию:

shell@android:/ $ top -n 1                                                     

User 31%, System 10%, IOW 0%, IRQ 0%
User 346 + Nice 10 + Sys 120 + Idle 637 + IOW 6 + IRQ 0 + SIRQ 2 = 1121

  PID PR CPU% S  #THR     VSS     RSS PCY UID      Name
  481  1  26% S    89 762832K  81688K  fg system   system_server
 1699  0   5% S    27 676472K  39092K  fg u0_a72   wm.cs.systemmonitor
11243  0   3% S    28 673140K  29796K  bg u0_a111  com.weather.Weather
13327  2   1% S    23 680472K  35844K  bg u0_a83   com.rhmsoft.fm
  659  0   1% S    17 663044K  33136K  bg u0_a13   android.process.media
20260  1   0% R     1   1208K    508K     shell    top

Мы можем увидетьCPU% округляется до целого числа, есть ли способ получить процессCPU% с большей точностью?

- Разъяснения по щедрости - Alex

Вопрос относится к системе Android и предпочтительно к некорневому устройству. В то время как Android предоставляет расширенные методы профилирования для приложений Java, инструменты для собственного кода (C ++) ограничены.Вверх Команда на Android позволяет отображать статистику для всех потоков, работающих в системе, как потоков Java, так и потоков C ++. Я ищу ответ, который поможет со следующим квестом:

Мое приложение использует 2% ЦП, когда оно неактивно в фоновом режиме, хотя оно должно быть ниже 0,1%. Если я бегуtop -tЯ получаю 0% для всех 15 потоков, которые принадлежат моему процессу (некоторые потоки являются потоками Java, например, основной поток UI; другие - потоки pthread, которые никогда не подключаются к JVM). Как я могу угадать, какой поток питается от батареи?

Я был бы рад получить еще больше информации об этой неожиданной деятельности, а Android предоставляет отличных помощников, таких какTraceView для потоков Java. Любое понимание инструментов для нативного кода будет высоко оценено.

Ответы на вопрос(4)

Ваш ответ на вопрос