New issue
Advanced search Search tips

Issue 917460 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug



Sign in to add a comment

apk_operations.py mem-usage should also use "showmap" command

Project Member Reported by agrieve@chromium.org, Dec 21

Issue description

Currently "mem-usage" just calls "dumpsys meminfo", which shows:
Applications Memory Usage (in Kilobytes):
Uptime: 3878390728 Realtime: 3977902010

** MEMINFO in pid 21051 [org.chromium.chrome] **
                   Pss  Private  Private  SwapPss     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap     9847     9768        0      103        0        0        0
  Dalvik Heap     1137     1112        0      161        0        0        0
 Dalvik Other      634      632        0        7
        Stack      312      312        0        0
       Ashmem      154      128        0        0
      Gfx dev     1462      428        0        0
    Other dev       88       80        8        0
     .so mmap     8788      500     6056      128
    .apk mmap    11555     2024     6884        0
    .ttf mmap      200        0      200        0
    .dex mmap     6156        4     3804        0
    .oat mmap     4841        0     2888        0
    .art mmap     2223      584      236       12
   Other mmap      281        4      192        0
   EGL mtrack    25920    25920        0        0
    GL mtrack     4244     4244        0        0
      Unknown      631      628        0        6
        TOTAL    78890    46368    20268      417        0        0        0

 App Summary
                       Pss(KB)
                        ------
           Java Heap:     1932
         Native Heap:     9768
                Code:    22360
               Stack:      312
            Graphics:    30592
       Private Other:     1672
              System:    12254

               TOTAL:    78890       TOTAL SWAP PSS:      417


Note: "App Summary" was added for Android M, and the list of rows in the top section differs by android version.

For even more info, we could dump the smaps for each process via "adb showmap" (requires root):

adb -s 00bf87787f703ca2 shell su 0 showmap -t 21051

 virtual                     shared   shared  private  private
    size      RSS      PSS    clean    dirty    clean    dirty     swap  swapPSS   # object
-------- -------- -------- -------- -------- -------- -------- -------- -------- ---- ------------------------------
   62120    15188    12462     5024        0     8140     2024        0        0   13 /data/app/org.chromium.chrome-jMFVPExnIkUl2Heu-RWfNg==/base.apk
     316      312      210      204        0      104        4        0        0    4 /data/app/org.chromium.chrome-jMFVPExnIkUl2Heu-RWfNg==/oat/arm/base.odex
     252      236       98      180       16        0       40        0        0    2 /data/dalvik-cache/arm/system@framework@boot-conscrypt.art
     632      584      166      456       80        0       48        4        1    2 /data/dalvik-cache/arm/system@framework@boot-core-libart.art
    4704     4052     1505     3260      232      236      324       56       11    2 /data/dalvik-cache/arm/system@framework@boot-framework.art
     136      136       77       88        4        0       44        0        0    2 /data/dalvik-cache/arm/system@framework@boot-okhttp.art
    1736     1600      479     1336      132        0      132       16        3    2 /data/dalvik-cache/arm/system@framework@boot.art
    1028       12       12        0        0        0       12        0        0    3 /dev/ashmem/dalvik-Jit thread pool worker thread 0 (deleted)
     896      500      498        0        4        0      496       44        8    7 /dev/ashmem/dalvik-LinearAlloc (deleted)
    1016        4        4        0        0        0        4        0        0    1 /dev/ashmem/dalvik-allocspace non moving space mark-bitmap 1 (deleted)
    4100       28       28        0        0        0       28        0        0    1 /dev/ashmem/dalvik-card table (deleted)
   32768       12       12        0        0        0       12        0        0    1 /dev/ashmem/dalvik-data-code-cache (deleted)
    1776       76       72        0        4        0       72        0        0   24 /dev/ashmem/dalvik-indirect ref table (deleted)
   32768       12       12        0        0        0       12        0        0    1 /dev/ashmem/dalvik-jit-code-cache (deleted)
     128        8        8        0        0        0        8        0        0    1 /dev/ashmem/dalvik-large marked objects (deleted)
    1172       40       33        0        8        0       32      844      159   24 /dev/ashmem/dalvik-large object space allocation (deleted)
    8196        4        4        0        0        0        4        0        0    1 /dev/ashmem/dalvik-live stack (deleted)
 1048576     1256     1256        0        0        0     1256        0        0    9 /dev/ashmem/dalvik-main space (region space) (deleted)
       4        4        4        0        0        0        4        0        0    1 /dev/ashmem/dalvik-mod union bitmap (deleted)
   64960       44       44        0        0        0       44        0        0    4 /dev/ashmem/dalvik-non moving space (deleted)
   16384        8        8        0        0        0        8        0        0    1 /dev/ashmem/dalvik-region space live bitmap (deleted)
     576      384      288        0      120        0      264      192       38    1 /dev/ashmem/dalvik-zygote space (deleted)
     128      128      128        0        0        0      128        0        0    1 /dev/ashmem/shared_memory/96A4C74CDBCDCCB3764244EEE9C7C936 (deleted)
    5904     2496     1462        0     2068        0      428        0        0   79 /dev/kgsl-3d0
    4096      140      140        0        0        0      140        0        0    1 /dev/zero (deleted)
     556      208       49      196        8        0        4        0        0    3 /system/bin/linker
     116       52       49        4        0       40        8        4        0    3 /system/lib/android.hardware.graphics.mapper@2.0.so
     120       80       40       60        8        8        4        0        0    4 /system/lib/libEGL.so
      40       28       17       20        0        4        4        4        0    3 /system/lib/libGLESv1_CM.so
    1320      464      202      312       28      108       16       20        3    4 /system/lib/libandroid_runtime.so
     260      136       41      112        8       12        4        0        0    3 /system/lib/libandroidfw.so
    4448     2028      426     1964       28       28        8        4        0    4 /system/lib/libart.so
     420      204       61      176       24        0        4        8        1    3 /system/lib/libbinder.so
     580      184       47      168       12        0        4        4        0    4 /system/lib/libc++.so
     588      440       91      400       16       16        8        0        0    3 /system/lib/libc.so
     696      412      189      368       40        0        4        0        0    4 /system/lib/libcrypto.so
      60       52       12       44        4        0        4        0        0    3 /system/lib/libcutils.so
     480      176      173        4        0      164        8        4        0    4 /system/lib/libft2.so
     432      160      151       16        0      108       36        8        1    3 /system/lib/libgui.so
     484      248      245        4        0      236        8        0        0    4 /system/lib/libharfbuzz_ng.so
     340      120       52      100       16        0        4        0        0    4 /system/lib/libhidltransport.so
     124       68       28       60        4        0        4        4        0    3 /system/lib/libhwbinder.so
     652      424      421        4        0      396       24        0        0    3 /system/lib/libhwui.so
     136       36       33        4        0       28        4       16        2    3 /system/lib/libinput.so
     208      104       24       96        4        0        4        0        0    4 /system/lib/libjavacore.so
      80       68       15       60        4        0        4        0        0    3 /system/lib/liblog.so
     136       80       46       48        4       24        4        0        0    3 /system/lib/libm.so
      32       24       18       12        0        4        8        0        0    3 /system/lib/libmemalloc.so
     132       28       25        4        0       20        4        4        0    4 /system/lib/libmemunreachable.so
     120       76       73        4        0       64        8        0        0    4 /system/lib/libminikin.so
      32       32        7       24        4        0        4        0        0    3 /system/lib/libnativehelper.so
      32       28       10       20        4        0        4        0        0    3 /system/lib/libnativeloader.so
     164       72       18       64        4        0        4        0        0    4 /system/lib/libopenjdk.so
     148       20       17        4        0       12        4        4        0    4 /system/lib/libpng.so
      36       28        9       20        4        0        4        0        0    4 /system/lib/libprocessgroup.so
      20       12       10        4        0        0        8        0        0    3 /system/lib/libqdMetaData.so
      48       28       18       20        0        0        8        0        0    4 /system/lib/libqdutils.so
      40       36       24       24        0        0       12        0        0    3 /system/lib/libqservice.so
    5496      768      765        4        0      688       76       76       15    4 /system/lib/libskia.so
     192      132       68      120        8        0        4        0        0    4 /system/lib/libssl.so
     108       80       69       20        0       52        8        0        0    3 /system/lib/libui.so
      96       84       19       76        4        0        4        0        0    4 /system/lib/libutils.so
     848      120       39      108        8        0        4        0        0    4 /system/lib/libvixl-arm.so
      20       16        8        8        4        0        4        0        0    3 /system/lib/libvndksupport.so
     100       28        9       20        4        0        4        0        0    4 /system/lib/libvulkan.so
      60       44       32       20        4       16        4        0        0    4 /vendor/lib/egl/eglSubDriverAndroid.so
      76       40       22       32        4        0        4        0        0    3 /vendor/lib/egl/libEGL_adreno.so
    2436     1256      812      848       40      352       16       24        4    3 /vendor/lib/egl/libGLESv2_adreno.so
      44       32       30        4        0       20        8        0        0    4 /vendor/lib/hw/android.hardware.graphics.mapper@2.0-impl.so
      56       52       40       24        0       20        8        0        0    3 /vendor/lib/hw/gralloc.msm8992.so
      36       24       14       16        4        0        4        0        0    3 /vendor/lib/libadreno_utils.so
    1028       88       46       80        4        0        4        0        0    3 /vendor/lib/libgsl.so
    9128     3812     3734      152        4     3544      112       40        7    3 /vendor/lib/libllvm-glnext.so
    3392      484      435        0       52        0      432       52        9   37 [anon:.bss]
       8        8        8        0        0        0        8        0        0    2 [anon:arc4random data]
      16        4        4        0        0        0        4       12        0    4 [anon:atexit handlers]
     372       12       12        0        0        0       12        4        0   31 [anon:bionic TLS]
   17408    10040     9804        0      300        0     9740      624      124   20 [anon:libc_malloc]
     204      164      103        0       72        0       92       40        0   45 [anon:linker_alloc]
      40       40       40        0        0        0       40        0        0   10 [anon:linker_alloc_small_objects]
      28       24       24        0        0        0       24        4        0    7 [anon:linker_alloc_vector]
  102816       20       16        0        4        0       16        4        0   29 [anon]
    1004        4        4        0        0        0        4        0        0    1 [stack:21057]
    1004        4        4        0        0        0        4        0        0    1 [stack:21058]
    1036        4        4        0        0        0        4        0        0    1 [stack:21059]
    1036        8        8        0        0        0        8        0        0    1 [stack:21060]
    1036        8        8        0        0        0        8        0        0    1 [stack:21062]
    1036        8        8        0        0        0        8        0        0    1 [stack:21063]
    1004        8        8        0        0        0        8        0        0    1 [stack:21064]
    1004        8        8        0        0        0        8        0        0    1 [stack:21065]
    1004       16       16        0        0        0       16        0        0    1 [stack:21066]
    1036        8        8        0        0        0        8        0        0    1 [stack:21069]
    1036        8        8        0        0        0        8        0        0    1 [stack:21070]
    1004       40       40        0        0        0       40        0        0    1 [stack:21084]
    1036        4        4        0        0        0        4        0        0    1 [stack:21086]
    1008        4        4        0        0        0        4        0        0    1 [stack:21087]
    1004        4        4        0        0        0        4        0        0    1 [stack:21088]
    1036       12       12        0        0        0       12        0        0    1 [stack:21090]
    1008        8        8        0        0        0        8        0        0    1 [stack:21108]
    1008        8        8        0        0        0        8        0        0    1 [stack:21110]
    1004       16       16        0        0        0       16        0        0    1 [stack:21111]
    1008        8        8        0        0        0        8        0        0    1 [stack:21112]
    1008        8        8        0        0        0        8        0        0    1 [stack:21113]
    1008        8        8        0        0        0        8        0        0    1 [stack:21114]
    1008        8        8        0        0        0        8        0        0    1 [stack:21117]
    1004        8        8        0        0        0        8        0        0    1 [stack:21118]
    1008       12       12        0        0        0       12        0        0    1 [stack:21119]
    1008       12       12        0        0        0       12        0        0    1 [stack:21120]
    1004       12       12        0        0        0       12        0        0    1 [stack:21190]
    1004        8        8        0        0        0        8        0        0    1 [stack:21198]
    1004        8        8        0        0        0        8        0        0    1 [stack:21209]
    8188       40       40        0        0        0       40        0        0    1 [stack]
-------- -------- -------- -------- -------- -------- -------- -------- -------- ---- ------------------------------
 virtual                     shared   shared  private  private
    size      RSS      PSS    clean    dirty    clean    dirty     swap  swapPSS   # object
-------- -------- -------- -------- -------- -------- -------- -------- -------- ---- ------------------------------
 1763856    85168    51813    42944     3756    21716    16752     3504      508 1721 TOTAL



* Probably want to show this behind a flag (--smaps)
  * Maybe show rows with PSS > 100kb even for non --smaps?
 
Note: could also parse smaps via https://cs.chromium.org/chromium/src/tools/android/native_lib_memory/parse_smaps.py
if we want to show mmap permissions.
Status: Untriaged (was: Available)
Available, but no owner or component? Please find a component, as no one will ever find this without one.
Labels: QuickFix
Status: Available (was: Untriaged)

Sign in to add a comment