Опишите "верхнюю" команду в Android - PullRequest
8 голосов
/ 26 мая 2011

Я делаю небольшое приложение для Android, чтобы показать текущее общее использование ЦП, например, вкладку «Производительность» в диспетчере задач Windows. Я использую "top -m 1 -n 1 -d 1" для получения загрузки процессора, но я не совсем понимаю результат "top".

Результат как:

User 5%, system 15%, IOW 0%, IRQ 0%
User 5 + Nice 0 + Sys 14 + Idle 73 + IOW 0 + IRQ 0 + SIRQ 0 = 92
PID     CPU%  S   #THR    VSS    RSS    UID     Name
213     11%   R    1      900K   340K   app_16   top

загрузка процессора = ??? Как я могу рассчитать общее использование процессора?

Ответы [ 4 ]

10 голосов
/ 11 августа 2011

Принятый ответ на этот вопрос неверен. Вторая строка вывода - это количество потоков / процессов, запущенных в этой группе. Ваше использование процессора составляет 20% в приведенном выше. 5% от пользовательских приложений и 15% от системных приложений. У вас есть 73 свободных потока, 14 системных потоков и 5 пользовательских потоков (согласно второй строке).

например, вот текущий верхний снимок для моего Droid.

User 6%, System 5%, IOW 0%, IRQ 0%
User 21 + Nice 0 + Sys 16 + Idle 270 + IOW 0 + IRQ 3 + SIRQ 0 = 310

  PID CPU% S  #THR     VSS     RSS PCY UID      Name
30994   4% S    19 134912K  24140K  bg app_24   edu.vu.isis.ammo.spotreport
 1021   3% S    57 217400K  58504K  fg system   system_server
20911   2% R     1    880K    400K  fg shell    top
 1053   0% S     1      0K      0K  fg root     tiwlan_wq
  995   0% S     2   1272K    128K  fg compass  /system/bin/akmd2

В соответствии с принятым ответом, я бы использовал процессор на 310%, когда это на самом деле просто количество потоков. Я вполне уверен, что на самом деле я использую только 11% процессорного времени, где три верхних процесса используют 9% от общего количества.

5 голосов
/ 19 марта 2013

Фактический ответ на вопрос прост - можно рассчитать по первой строке вывода Android Top *

User 5%, system 15%, IOW 0%, IRQ 0%

Итого = сумма всех процентов = 5 + 15 = 20%

Другой ответ о второй строке настолько неправильный.Во второй строке фактически указывается время планировщика, потраченное в этом конкретном состоянии - user / sys / idle / iow в jiffies (обычно 10 мс) между одним выходом top и следующим выходом top - в случае OP top -d 1 - который печатает использованиекаждую секунду - общее количество jiffies на ядро ​​будет ~ 100 (при условии 10ms на jiffy) - что будет аналогично процентным значениям.

User 5 + Nice 0 + Sys 14 + Idle 73 + IOW 0 + IRQ 0 + SIRQ 0 = 92

Принимая во внимание, что значения были бы больше, если -d выше или если имеется более одного ядра

User 21 + Nice 0 + Sys 16 + Idle 270 + IOW 0 + IRQ 3 + SIRQ 0 = 310

Это, вероятно, без какой-либо опции -d,поэтому top принимает задержку по умолчанию в 3 секунды = 300 jiffies.

См. AOSP верхний исходный код , чтобы получить полную логику того, как рассчитывается каждое значение.

0 голосов
/ 26 мая 2011
Команда

top является командой linux. Взгляните здесь

Спасибо Дипак

0 голосов
/ 26 мая 2011

Процент использования процессора указан как (100-idle_percentage), более или менее.В вашем фрагменте процентное соотношение Idle равно 73, что делает загрузку вашего процессора 27%.

Что касается использования процессором каждого отдельного процесса, это будет ваш второй столбец из последних 2 строк.

...