Как читать данные об использовании стокового ЦП
На Ice Cream Sandwich, опция в параметрах разработчика - "Показать загрузку процессора", которая добавляет наложение на экран (см. Скриншот ниже).
У меня вопрос, как я могу прочитать данные? Я догадался, что имена пакетов являются активными в настоящее время процессами, но что означают красная и зеленая полосы позади? Кроме того, какие 3 числа в верхней части пакетов?
4 ответа
Это должна быть средняя загрузка Unix. В Википедии есть хорошая статья об этом.
Цифры показывают среднюю загрузку процессора в разные промежутки времени. Слева направо: последняя минута / последние пять минут / последние пятнадцать минут
До сих пор это был самый полезный источник информации, который я мог найти. Видимо, цифры НЕ отражают среднюю загрузку в%: http://forum.xda-developers.com/showthread.php?t=1495763
Подробнее о "средней нагрузке", показывающей загрузку процессора за 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 ЦП это было бы хорошо.
больше информации: ссылка
Как указывалось в других ответах, в системах UNIX числа представляют средние значения загрузки процессора за периоды 1/5/15 минут. Но в Linux (и, следовательно, в Android) он представляет собой нечто иное.
После исправления ядра, выпущенного в 1993 году ( большая углубленная статья по этому вопросу), в Linux средние значения нагрузки больше не отражают строго нагрузку на ЦП: поскольку расчеты учитывают не только процессы, связанные с ЦП, но и процессы в состояние непрерывного ожидания - первоначальная цель состояла в том, чтобы учесть связанные с вводом-выводом процессы таким образом, чтобы представить больше "нагрузки на систему", чем просто нагрузку на процессор. Проблема заключается в том, что с 1993 года в ядре Linux возросло использование непрерывного состояния, и оно больше не представляет процесс, связанный с вводом / выводом. Эта проблема еще более усугубляется некоторыми разработчиками Linux, использующими непрерывное ожидание в качестве простого ожидания, чтобы избежать размещения сигналов в их реализациях. В результате в Linux (и Android) мы можем увидеть асимметричные средние значения высокой нагрузки, которые объективно не отражают реальную нагрузку. Существуют отчеты пользователей Android о необоснованно высоких средних значениях нагрузки, контрастирующих с низкой загрузкой ЦП. Например, мой старый телефон Android (с 2 ядрами процессора) обычно показывал среднюю нагрузку ~12, когда система и процессоры простаивали. Следовательно, средние показатели загрузки в Linux (Android) не являются надежным показателем производительности.
Из книги " Высокопроизводительные приложения для Android" (стр. 157):
- то, что мы видим, эквивалентно команде adb shell dumpsys cpuinfo
- Цифры показывают загрузку процессора за 1 минуту, 5 минут и 15 минут (слева)
- Цвета показывают время, затраченное процессором в пространстве пользователя (зеленый), ядро (красный) и прерывание ввода-вывода (синий)