Как читать данные использования ЦП запаса

В Ice Cream Sandwich в опции разработчика есть опция "Показать использование процессора", которая добавляет оверлей на экран (см. снимок экрана ниже).

Мой вопрос: как мне читать данные? Я догадался, что имена пакетов - это текущий процесс, но что означает красный и зеленый столб? Кроме того, каковы 3 числа поверх пакетов?

enter image description here

Ответ 1

Это должно быть среднее значение нагрузки Unix. Wikipedia есть хорошая статья об этом.

Цифры показывают среднюю нагрузку процессора в разные временные интервалы. Слева направо: последняя минута/последние пять минут/последние пятнадцать минут

Ответ 2

До сих пор это был самый полезный источник информации, который я мог найти. По-видимому, цифры НЕ отражают среднюю нагрузку в%: http://forum.xda-developers.com/showthread.php?t=1495763

Ответ 3

Как указывалось в других ответах, в системах UNIX числа представляют средние значения загрузки процессора за периоды 1/5/15 минут. Но в Linux (и, следовательно, в Android) он представляет собой нечто иное.

После исправления ядра, выпущенного в 1993 году (большая углубленная статья по этому вопросу), в Linux средние значения нагрузки больше не отражают строго нагрузку на ЦП: поскольку расчеты учитывают не только процессы, связанные с процессором, но и процессы состояние непрерывного ожидания - первоначальная цель состояла в том, чтобы учесть процессы, связанные с вводом/выводом, таким образом, чтобы представлять больше "системную нагрузку", чем просто загрузку ЦП. Проблема заключается в том, что с 1993 года в ядре Linux возросло использование непрерывного состояния, и оно больше не представляет процесс, связанный с вводом/выводом. Эта проблема еще более усугубляется некоторыми разработчиками Linux, использующими непрерывное ожидание в качестве простого ожидания, чтобы избежать учета сигналов в их реализациях. В результате в Linux (и Android) мы можем увидеть асимметричные значения высокой нагрузки, которые объективно не отражают реальную нагрузку. Есть отчеты пользователей Android о необоснованно высоких средних значениях нагрузки, контрастирующих с низкой загрузкой ЦП. Например, мой старый телефон Android (с 2 ядрами процессора) обычно показывал среднюю нагрузку ~ 12, когда система и процессоры простаивали. Следовательно, средние показатели загрузки в Linux (Android) не являются надежным показателем производительности.

Ответ 4

Подробнее о "средней нагрузке", показывающей загрузку процессора за 1 минуту, 5 минут и 15 минут

Linux, Mac и другие Unix-подобные системы отображают "средние нагрузки". Эти цифры говорят о том, насколько заняты системный процессор, диск и другие ресурсы. Поначалу они не говорят сами за себя, но с ними легко познакомиться.

WIKI: example, one can interpret a load average of "1.73 0.60 7.98" on a single-CPU system as:

during the last minute, the system was overloaded by 73% on average (1.73 runnable processes, so that 0.73 processes had to wait for a turn for a single CPU system on average).
during the last 5 minutes, the CPU was idling 40% of the time on average.
during the last 15 minutes, the system was overloaded 698% on average (7.98 runnable processes, so that 6.98 processes had to wait for a turn for a single CPU system on average) if dual core mean: 798% - 200% = 598%. 

Вы, вероятно, имеете систему с несколькими процессорами или многоядерными процессорами. Средние числа нагрузки работают немного по-другому в такой системе. Например, если у вас средняя загрузка 2 в системе с одним ЦП, это означает, что ваша система была перегружена на 100 процентов - за весь период времени один процесс использовал ЦП, в то время как другой процесс ожидал. В системе с двумя ЦП это будет полное использование - два разных процесса все время используют два разных ЦП. В системе с четырьмя ЦП это было бы наполовину - два процесса использовали два ЦП, а два ЦП бездействовали.

Чтобы понять среднее значение нагрузки, вам нужно знать, сколько процессоров имеет ваша система. Средняя загрузка 6,03 означает, что система с одним ЦП была сильно перегружена, но на компьютере с 8 ЦП это было бы хорошо.

больше информации: ссылка

Ответ 5

Из книги " Высокопроизводительные приложения для Android" (стр. 157):

  • то, что мы видим, эквивалентно команде adb shell dumpsys cpuinfo
  • Цифры показывают загрузку процессора за 1 минуту, 5 минут и 15 минут (слева)
  • Цвета показывают время, затраченное процессором в пространстве пользователя (зеленый), ядро (красный) и прерывание ввода-вывода (синий)

Ответ 6

Ответы о среднем 1/5/15 должны быть НЕПРАВИЛЬНЫМИ! У меня на телефоне следующая ситуация: при включении экрана среднее значение за 1 минуту составляет 6,3, а второе число - за 5 минут - 4,95. Через несколько секунд, в то время как среднее значение за 1 минуту все еще равно 6,3 и, следовательно, ВЫСШЕ, чем среднее значение за 5 минут, среднее значение за 5 минут падает до 4,90. Я думаю, что нет никакого способа, как математически объяснить, что долгосрочная средняя уменьшается, а более короткая средняя больше, чем эта. Также мне кажется, что 15-минутное среднее значение меняется слишком быстро...

Пожалуйста, перепроверьте свои ответы и напишите правильный. Мне слишком любопытно, что означают цифры.