Как получить более высокую точность «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. Любое понимание инструментов для нативного кода будет высоко оценено.