のねのBlog

パソコンの問題や、ソフトウェアの開発で起きた問題など書いていきます。よろしくお願いします^^。

Applications Memory Usage

AndroidのLogcatに以下のログがあった。
なんだろ?

02-08 18:07:16.660: I/ActivityManager(1785): Applications Memory Usage (kB):
02-08 18:07:16.660: I/ActivityManager(1785): Uptime: 285778440 Realtime: 286319337
02-08 18:07:16.660: I/ActivityManager(1785): Total PSS by OOM adjustment:
02-08 18:07:16.660: I/ActivityManager(1785):    202958 kB: System
02-08 18:07:16.660: I/ActivityManager(1785):               202958 kB: system (pid 1785)
02-08 18:07:16.660: I/ActivityManager(1785):     76463 kB: Persistent
02-08 18:07:16.660: I/ActivityManager(1785):                43059 kB: com.android.systemui (pid 1866)
02-08 18:07:16.660: I/ActivityManager(1785):                28334 kB: com.android.phone (pid 2002)
02-08 18:07:16.660: I/ActivityManager(1785):                 5070 kB: com.android.nfc (pid 2012)
02-08 18:07:16.660: I/ActivityManager(1785):     70202 kB: Foreground
02-08 18:07:16.660: I/ActivityManager(1785):                65130 kB: com.android.browser (pid 1469)
02-08 18:07:16.660: I/ActivityManager(1785):                 5072 kB: com.google.android.gm (pid 3106)
02-08 18:07:16.660: I/ActivityManager(1785):     33779 kB: Visible
02-08 18:07:16.660: I/ActivityManager(1785):                17545 kB: com.android.phasebeam (pid 1960)
02-08 18:07:16.660: I/ActivityManager(1785):                 4478 kB: com.android.calendar (pid 3092)
02-08 18:07:16.660: I/ActivityManager(1785):                 4163 kB: com.android.deskclock (pid 3123)
02-08 18:07:16.660: I/ActivityManager(1785):                 3847 kB: com.android.providers.calendar (pid 3137)
02-08 18:07:16.660: I/ActivityManager(1785):                 3746 kB: com.android.smspush (pid 2094)
02-08 18:07:16.660: I/ActivityManager(1785):     62590 kB: Perceptible
02-08 18:07:16.660: I/ActivityManager(1785):                28898 kB: com.google.android.inputmethod.japanese (pid 7157)
02-08 18:07:16.660: I/ActivityManager(1785):                23668 kB: com.skype.raider (pid 10577)
02-08 18:07:16.660: I/ActivityManager(1785):                10024 kB: com.lookout (pid 31339)
02-08 18:07:16.660: I/ActivityManager(1785):     13796 kB: A Services
02-08 18:07:16.660: I/ActivityManager(1785):                 8771 kB: com.google.process.gapps (pid 1705)
02-08 18:07:16.660: I/ActivityManager(1785):                 5025 kB: jp.naver.SJCORESNG (pid 3037)
02-08 18:07:16.660: I/ActivityManager(1785):     34157 kB: Home
02-08 18:07:16.660: I/ActivityManager(1785):                34157 kB: com.android.launcher (pid 29657)
02-08 18:07:16.660: I/ActivityManager(1785):     47540 kB: B Services
02-08 18:07:16.660: I/ActivityManager(1785):                18935 kB: com.facebook.katana (pid 1073)
02-08 18:07:16.660: I/ActivityManager(1785):                13324 kB: com.facebook.orca (pid 32159)
02-08 18:07:16.660: I/ActivityManager(1785):                 5907 kB: jp.naver.android.npush (pid 14831)
02-08 18:07:16.660: I/ActivityManager(1785):                 5577 kB: com.nhn.nni (pid 14597)
02-08 18:07:16.660: I/ActivityManager(1785):                 3797 kB: com.cookpad.android.activities (pid 1288)
02-08 18:07:16.660: I/ActivityManager(1785):                    0 kB: jp.naver.line.android (pid 31296)
02-08 18:07:16.660: I/ActivityManager(1785): Total PSS: 541485 kB
02-08 18:07:16.660: I/ActivityManager(1785):       KSM: 0 kB saved from shared 0 kB
02-08 18:07:16.660: I/ActivityManager(1785):            0 kB unshared; 0 kB volatile
02-08 18:07:16.660: I/ActivityManager(1785):   PID      Vss      Rss      Pss      Uss  cmdline
02-08 18:07:16.660: I/ActivityManager(1785):  1785  250664K  250436K  216317K  202980K  system_server
02-08 18:07:16.660: I/ActivityManager(1785):  1469   95344K   95300K   65173K   57252K  com.android.browser
02-08 18:07:16.660: I/ActivityManager(1785):  1866   65588K   65276K   43262K   41100K  com.android.systemui
02-08 18:07:16.660: I/ActivityManager(1785): 29657   56096K   55900K   34288K   32096K  com.android.launcher
02-08 18:07:16.660: I/ActivityManager(1785):   129   81888K   55264K   32325K   10532K  /system/bin/surfaceflinger
02-08 18:07:16.660: I/ActivityManager(1785):  7157   47120K   47076K   29096K   27992K  com.google.android.inputmethod.japanese
02-08 18:07:16.660: I/ActivityManager(1785):  2002   47244K   47188K   28488K   27360K  com.android.phone
02-08 18:07:16.660: I/ActivityManager(1785): 10577   43132K   42884K   23796K   22560K  com.skype.raider
02-08 18:07:16.660: I/ActivityManager(1785):  1073   40380K   40308K   19044K   17360K  com.facebook.katana
02-08 18:07:16.660: I/ActivityManager(1785):  1960   40584K   40508K   17743K   11664K  com.android.phasebeam
02-08 18:07:16.660: I/ActivityManager(1785): 10676   15916K   15916K   15900K   15900K  /data/data/com.skype.raider/files/skypekit
02-08 18:07:16.660: I/ActivityManager(1785): 32159   34708K   34632K   13443K   11860K  com.facebook.orca
02-08 18:07:16.660: I/ActivityManager(1785): 31339   31616K   31556K   10087K    8452K  com.lookout
02-08 18:07:16.660: I/ActivityManager(1785):  3106   31000K   30948K    9154K    7204K  com.google.android.gm
02-08 18:07:16.660: I/ActivityManager(1785):  1705   26260K   26180K    8866K    7864K  com.google.process.gapps
02-08 18:07:16.660: I/ActivityManager(1785): 14831   22676K   22592K    5972K    5096K  jp.naver.android.npush
02-08 18:07:16.660: I/ActivityManager(1785): 14597   22532K   22456K    5668K    4768K  com.nhn.nni
02-08 18:07:16.660: I/ActivityManager(1785):  3092   26144K   26076K    5382K    3788K  com.android.calendar
02-08 18:07:16.660: I/ActivityManager(1785):  3037   24972K   24904K    5188K    3636K  jp.naver.SJCORESNG
02-08 18:07:16.660: I/ActivityManager(1785):  2012   21800K   21736K    5166K    4316K  com.android.nfc
02-08 18:07:16.660: I/ActivityManager(1785):  3123   24520K   24448K    4593K    2972K  com.android.deskclock
02-08 18:07:16.660: I/ActivityManager(1785):  1288   23108K   23024K    3926K    2780K  com.cookpad.android.activities
02-08 18:07:16.660: I/ActivityManager(1785):  2094   20532K   20452K    3816K    2928K  com.android.smspush
02-08 18:07:16.660: I/ActivityManager(1785):  1571   20700K   20588K    2910K    1576K  zygote
02-08 18:07:16.660: I/ActivityManager(1785):  1569    3032K    3032K    2461K    2376K  /system/bin/mediaserver
02-08 18:07:16.660: I/ActivityManager(1785): 27007    1776K    1776K    1527K    1516K  logcat
02-08 18:07:16.660: I/ActivityManager(1785):  1570    1664K    1664K    1368K    1352K  /system/bin/netd
02-08 18:07:16.660: I/ActivityManager(1785):  3210    1352K    1352K    1111K    1096K  procrank
02-08 18:07:16.660: I/ActivityManager(1785):   128    1164K    1164K     831K     820K  /system/bin/rild
02-08 18:07:16.660: I/ActivityManager(1785):   131    1048K    1048K     696K     684K  /system/bin/drmserver
02-08 18:07:16.660: I/ActivityManager(1785):   137     712K     712K     493K     488K  /system/bin/sdcard
02-08 18:07:16.660: I/ActivityManager(1785): 20798     700K     700K     401K     392K  /system/bin/wpa_supplicant
02-08 18:07:16.660: I/ActivityManager(1785):  4424     372K     372K     348K     348K  /sbin/adbd
02-08 18:07:16.660: I/ActivityManager(1785):   122     560K     560K     293K     280K  /system/bin/vold
02-08 18:07:16.660: I/ActivityManager(1785):   134     560K     560K     272K     264K  /system/bin/keystore
02-08 18:07:16.660: I/ActivityManager(1785): 31385     488K     488K     231K     212K  logcat
02-08 18:07:16.660: I/ActivityManager(1785):   127     472K     472K     230K     224K  /sys

以下のコマンドで同じものが取れる。
>adb -d shell dumpsys meminfo

d:\Users\m_fujii>adb -d shell dumpsys meminfo
Applications Memory Usage (kB):
Uptime: 288567987 Realtime: 289117423

Total PSS by process:
    65292 kB: system (pid 5102)
    33547 kB: com.android.launcher (pid 5351)
    29063 kB: com.android.settings (pid 7494)
    28043 kB: com.android.deskclock (pid 6699)
    25362 kB: com.android.systemui (pid 5184)
    24996 kB: com.facebook.katana (pid 6909)
    21450 kB: jp.naver.line.android (pid 6459)
    17593 kB: com.android.phasebeam (pid 5304)
    13504 kB: jp.co.yahoo.android.yjtop (pid 8014)
    12258 kB: com.android.vending (pid 6002)
    12220 kB: com.google.android.inputmethod.japanese (pid 5316)
    10562 kB: jp.naver.lineplay.android (pid 7005)
    10377 kB: com.lookout (pid 5971)
    10309 kB: com.google.process.gapps (pid 5625)
     8343 kB: com.google.android.googlequicksearchbox (pid 8622)
     7179 kB: com.android.gallery3d (pid 11734)
     6836 kB: com.android.phone (pid 5337)
     6219 kB: jp.co.johospace.jorte (pid 12003)
     6023 kB: jp.naver.android.npush (pid 5614)
     5204 kB: com.google.android.gsf.login (pid 7684)
     5122 kB: com.nhn.nni (pid 5690)
     4632 kB: com.android.nfc (pid 5343)
     4529 kB: android.process.media (pid 11686)
     4284 kB: com.google.android.apps.uploader (pid 11718)
     4141 kB: jp.naver.SJLINEPANG (pid 6966)
     4071 kB: com.nhncorp.lineweather (pid 6946)
     3897 kB: com.android.providers.calendar (pid 7798)
     3378 kB: com.google.android.partnersetup (pid 8639)
     2948 kB: com.android.location.fused (pid 5428)
     2805 kB: com.android.smspush (pid 5441)

Total PSS by OOM adjustment:
    65292 kB: System
               65292 kB: system (pid 5102)
    36830 kB: Persistent
               25362 kB: com.android.systemui (pid 5184)
                6836 kB: com.android.phone (pid 5337)
                4632 kB: com.android.nfc (pid 5343)
    29063 kB: Foreground
               29063 kB: com.android.settings (pid 7494)
    48441 kB: Visible
               28043 kB: com.android.deskclock (pid 6699)
               17593 kB: com.android.phasebeam (pid 5304)
                2805 kB: com.android.smspush (pid 5441)
    22597 kB: Perceptible
               12220 kB: com.google.android.inputmethod.japanese (pid 5316)
               10377 kB: com.lookout (pid 5971)
     9651 kB: A Services
                5122 kB: com.nhn.nni (pid 5690)
                4529 kB: android.process.media (pid 11686)
    33547 kB: Home
               33547 kB: com.android.launcher (pid 5351)
     6023 kB: B Services
                6023 kB: jp.naver.android.npush (pid 5614)
   142743 kB: Background
               24996 kB: com.facebook.katana (pid 6909)
               21450 kB: jp.naver.line.android (pid 6459)
               13504 kB: jp.co.yahoo.android.yjtop (pid 8014)
               12258 kB: com.android.vending (pid 6002)
               10562 kB: jp.naver.lineplay.android (pid 7005)
               10309 kB: com.google.process.gapps (pid 5625)
                8343 kB: com.google.android.googlequicksearchbox (pid 8622)
                7179 kB: com.android.gallery3d (pid 11734)
                6219 kB: jp.co.johospace.jorte (pid 12003)
                5204 kB: com.google.android.gsf.login (pid 7684)
                4284 kB: com.google.android.apps.uploader (pid 11718)
                4141 kB: jp.naver.SJLINEPANG (pid 6966)
                4071 kB: com.nhncorp.lineweather (pid 6946)
                3897 kB: com.android.providers.calendar (pid 7798)
                3378 kB: com.google.android.partnersetup (pid 8639)
                2948 kB: com.android.location.fused (pid 5428)

Total PSS by category:
   161950 kB: Dalvik
    79980 kB: Other dev
    68603 kB: Unknown
    43400 kB: .dex mmap
    23536 kB: .so mmap
    12827 kB: .apk mmap
     3026 kB: Other mmap
      480 kB: Native
      313 kB: .ttf mmap
       40 kB: .jar mmap
       20 kB: Ashmem
       12 kB: Cursor

Total PSS: 394187 kB
      KSM: 0 kB saved from shared 0 kB
           0 kB unshared; 0 kB volatile

そこでPSSというものが存在します。
共有されていないprivateメモリ + 共有されてるメモリ ÷ 共有しているプロセス=がPSS(Proportional Set Size)です。
グレイト!PSSは本当のメモリサイズとなるのです!

メモリ簡易出力 adb shell procrank adb shell procrank
VSS(Virtual Set Size) 仮想メモリの消費量
RSS(Resident Set Size) 物理メモリの消費量
PSS(Proportional Set Size) プロセスのヒープ所有サイズ
USS(Unique Set Size) プロセスのヒープ利用サイズ
メモリ詳細出力 adb shell dumpsys meminfo パッケージ名 adb shell dumpsys meminfo net.npaka.helloworld

Swap メモリ容量が不足してきたら現在使われていないプロセスを一時的にスワップファイルに書き出し
USS ユニークセットサイズ
PSS ユニークなセットのサイズに加えて使用されている共有メモリの部分である比例セットサイズ
RSS(Resident Set Size) 物理メモリに位置する本当に存在するメモリの量
VSS プロセスが必要とするメモリの量

Android Memory Usage - eLinux.org

Memory and Activities :: OutOfMemory

[android-developers] The native pss memory queries in Jelly Bean seems to be returning incorrect results

Android Memory Analysis - Texas Instruments Embedded Processors Wiki

プロセスごとに表示するには
>adb -d shell dumpsys meminfo system

>adb -d shell dumpsys meminfo system

Applications Memory Usage (kB):
Uptime: 287673135 Realtime: 288222571

MEMINFO in pid 5102 [system] **

Shared Private Heap Heap Heap Pss Dirty Dirty Size Alloc Free ------ ------ ------ ------ ------ ------ Native 16 8 16 19628 9713 1722 Dalvik 26707 10220 26404 35344 28232 7112 Cursor 4 0 4 Ashmem 18 36 0 Other dev 20090 596 1940 .so mmap 2991 2048 880 .jar mmap 0 0 0 .apk mmap 1222 0 0 .ttf mmap 41 0 0 .dex mmap 4075 0 0 Other mmap 375 16 28 Unknown 9843 328 9840 TOTAL 65382 13252 39112 54972 37945 8834 Objects Views: 321 ViewRootImpl: 1 AppContexts: 38 Activities: 0 Assets: 8 AssetManagers: 8 Local Binders: 281 Proxy Binders: 344 Death Recipients: 150 OpenSSL Sockets: 0 SQL MEMORY_USED: 690 PAGECACHE_OVERFLOW: 160 MALLOC_SIZE: 62 DATABASES pgsz dbsz Lookaside(b) cache Dbname 4 64 54 45/20/6 /data/system/users/0/accounts.db 4 68 18 0/13/1 /data/data/com.android.providers.settings/databases/settings.db 4 68 24 1/20/2 /data/data/com.android.providers.settings/databases/settings.db (2) 4 68 44 10/21/6 /data/data/com.android.providers.settings/databases/settings.db (1) 4 20 18 0/13/1 /data/system/locksettings.db 4 20 22 446/13/2 /data/system/locksettings.db (2) 4 20 22 606/14/2 /data/system/locksettings.db (1) Asset Allocations zip:/system/app/GalleryGoogle.apk:/resources.arsc: 1148K zip:/system/app/GoogleBackupTransport.apk:/resources.arsc: 15K
d:\Users\m_fujii>adb -d shell procrank
  PID      Vss      Rss      Pss      Uss  cmdline
 5102  102124K  101964K   66995K   57696K  system_server
 5351   60244K   60204K   33577K   31440K  com.android.launcher
  129   80820K   54196K   31797K   10532K  /system/bin/surfaceflinger
 7494   61152K   61120K   29143K   21484K  com.android.settings
 6699   57844K   57744K   27403K   20812K  com.android.deskclock
 5184   53152K   52948K   25149K   22428K  com.android.systemui
 6909   49460K   49400K   24795K   23088K  com.facebook.katana
 6459   47412K   47360K   21391K   19104K  jp.naver.line.android
 5304   45852K   45788K   17641K   10956K  com.android.phasebeam
 8014   37640K   37588K   13146K   11608K  jp.co.yahoo.android.yjtop
 6002   35948K   35888K   12256K   10900K  com.android.vending
 5316   34484K   34432K   12232K   11236K  com.google.android.inputmethod.japanese
 4888   41048K   40936K   10613K    6496K  zygote
 7005   33876K   33820K   10571K    9300K  jp.naver.lineplay.android
 5971   34912K   34864K   10378K    8916K  com.lookout
 5625   33968K   33904K   10302K    9180K  com.google.process.gapps
 4886   11016K   11016K    8885K    8020K  /system/bin/mediaserver
 8079   31844K   31792K    8290K    7144K  com.google.android.gm
 8622   31016K   30956K    8285K    7236K  com.google.android.googlequicksearchbox
11734   29760K   29708K    7214K    6108K  com.android.gallery3d
 5337   30224K   30164K    6837K    5636K  com.android.phone
 5614   28920K   28844K    6056K    4460K  jp.naver.android.npush
 7935   27680K   27616K    5768K    4836K  com.google.android.apps.genie.geniewidget
 7684   26012K   25932K    5221K    4184K  com.google.android.gsf.login
 5690   27460K   27392K    5210K    4036K  com.nhn.nni
 5343   27104K   27052K    4648K    3652K  com.android.nfc
 6673   26628K   26560K    4624K    3536K  com.android.calendar
11686   26700K   26636K    4566K    3648K  android.process.media
11718   26184K   26124K    4320K    3468K  com.google.android.apps.uploader
 6966   24556K   24476K    4164K    3328K  jp.naver.SJLINEPANG
 6946   25156K   25088K    4089K    3012K  com.nhncorp.lineweather
 7798   25532K   25456K    3909K    2852K  com.android.providers.calendar
 8639   23908K   23820K    3318K    2528K  com.google.android.partnersetup
 5428   23584K   23504K    2965K    2044K  com.android.location.fused
 5441   23240K   23160K    2827K    1912K  com.android.smspush
11958    1808K    1808K    1559K    1552K  procrank
27007    1776K    1776K    1525K    1516K  logcat
  128    1308K    1308K     965K     956K  /system/bin/rild
  131    1080K    1080K     725K     716K  /system/bin/drmserver
 4887    1344K    1344K     678K     584K  /system/bin/netd
20798     992K     992K     677K     668K  /system/bin/wpa_supplicant
  137     712K     712K     492K     488K  /system/bin/sdcard
 4424     420K     420K     396K     396K  /sbin/adbd
  122     604K     604K     328K     316K  /system/bin/vold
  134     588K     588K     285K     276K  /system/bin/keystore
  127     536K     536K     258K     248K  /system/bin/debuggerd
 6370     540K     540K     237K     224K  /system/bin/dhcpcd
11956     432K     432K     210K     204K  /system/bin/sh
 6023     452K     452K     187K     176K  logcat
  133     400K     400K     160K     156K  /system/bin/installd
    1     228K     228K     156K     108K  /init
  100     188K     188K     136K      88K  /sbin/ueventd
  121     324K     324K     112K     108K  /system/bin/servicemanager
  138     296K     296K     111K     108K  /system/bin/sh
27005     276K     276K      83K      80K  /system/bin/sh
                          ------   ------  ------
                         467890K  375784K  TOTAL

RAM: 710776K total, 32616K free, 1860K buffers, 247184K cached, 4784K shmem, 18556K slab