Описание команды" top " в Android

Я делаю небольшое приложение для 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

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

4 ответов


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

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

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% CPU, когда это на самом деле просто количество потоков. Я уверен, что на самом деле я использую только 11% процессора, где верхние 3 процесса используют 9% от этой суммы.


фактический ответ на вопрос прямо вперед-может быть рассчитан из первой строки вывода Android top в

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

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

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

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

это, вероятно, без каких-либо , так что top принимает задержку по умолчанию 3 секунд = 300 джиффи.

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


top command-это команда linux. Посмотрите здесь

спасибо Дипак!--3-->


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

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