Кто-нибудь знает значение результата "верхней" команды в Android?

Я обнаружил, что результат 'top' отличается от результата в стандартном linux. Я немного искал в Интернете, но не могу найти свой ответ. Например, следующее является частичным результатом top в моем Android:

  PID CPU% S  #THR     VSS     RSS PCY UID      Name
  814   2% R     1    940K    372K  fg root     top
  110   1% S    58 185000K  59216K  fg system   system_server
   31   0% S     1      0K      0K  fg root     vsync_workqueue
   49   0% S     1      0K      0K  fg root     file-storage
   52   0% S     1      0K      0K  fg root     gp2a_wq
  178   0% S     9  98476K  23820K  fg system   com.android.systemui

Так что #THR, вероятно, количество потоков. Но что такое "PCY"? Я не могу найти эту информацию в папке /proc/(PID)/. И я обнаружил, что если я открою YouTube, PCY будет FG. Затем, если я выйду из него (youtube), процесс youtube все еще существует, но PCY будет bg. И с точки зрения 'S', я обнаружил, что все процессы всегда 'S', что означает сон, даже мое приложение на YouTube в настоящее время активно. Это устало...

У кого-нибудь есть подсказка:> Thx

4 ответа

Решение

Вот мои (не) образованные догадки:

PID - идентификатор процесса

CPU% - загрузка ЦП

S - состояние (или, возможно, статус) R= работает, S= спит

#THR - Количество потоков

PCY - я вроде как в тупике. Вы, кажется, достаточно хорошо понимаете, что он делает, так что этого достаточно (при условии, что fg и bg - единственно возможные значения)

UID - Имя пользователя, запустившего задачу

Имя - Это само за себя...

VSS и RSS: из http://groups.google.com/group/android-beginners/browse_thread/thread/e6f2d396a68238ad?pli=1

Размер виртуального набора (иногда сокращенно VSZ) и размер резидентного набора. Googling покажет некоторую подробную информацию для Linux. Вот скоростная версия:

VSS указывает, сколько виртуальной памяти связано с процессом, Resident Set Size указывает, сколько физических страниц связано с процессом.

VSS вообще бессмысленен на Android. Если я отображаю в памяти файл размером 1 МБ, VSS увеличивается на 1 МБ, но я не использовал никаких ресурсов (кроме записей в таблице виртуального отображения).

RSS частично бессмыслен на Android, потому что он не идентифицирует страницы, используемые несколькими процессами. Если процесс A имеет RSS 2 МБ, а процесс B имеет RSS 2 МБ, возможно, что заняты 4 МБ физических страниц. Также возможно, что занято всего 2 МБ физических страниц.

РЕДАКТИРОВАТЬ: Насколько ваш Youtube спит, если он ничего не делает активно, он будет спать, даже если он находится на переднем плане. Попробуйте создать простое приложение, которое в основном while(1){Делайте что-то бессмысленное} и посмотрите, спит ли оно или работает. Конечно, это может быть и причудой к тому, как Android обрабатывает многозадачность.

EDIT2:
Главным образом необразованный, несколько случайный удар в темноте для PCY -
PCY - Policy - определяет, как приложение должно обрабатываться диспетчером памяти Android.
FG - Foreground - Процесс считается процессом переднего плана и не должен быть уничтожен, чтобы освободить память
BG - Background - Процесс считается фоновым процессом (не активно запущен на переднем плане и может быть уничтожен для освобождения памяти)

Верхний исходный код [верхний исходный код] [1]

[1]: http://androidxref.com/4.0.4/xref/system/core/toolbox/top.c#442 чтобы получить полную логику расчета каждого значения

Пытаться man top на любом обычном linux / unix (хотя я не думаю, что в Android установлен man по умолчанию).

На самом деле, теперь я смотрю, похоже, что названия этих столбцов не упоминаются на этом man страница, но дело в том, что man обычно это лучшее место для поиска информации о командах linux / unix.

На этой странице говорится, что означают VSS и RSS, но не указывается, как получить более значимые PSS и USS

Другие вопросы по тегам