adb shell 命令 dumpsys meminfo pkg 信息注释

1. 参考文章

https://www.jianshu.com/p/0df5ad0d2e6a

https://blog.csdn.net/msf568834002/article/details/78881341

2. adb shell dumpsys meminfo 包名

adb shell dumpsys meminfo com.lava.cleanmaster

Applications Memory Usage (in Kilobytes):
Uptime: 21001939 Realtime: 501978173

** MEMINFO in pid 18213 [com.lava.cleanmaster] **
                   Pss  Private  Private  SwapPss     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap     4604     4540        0        0    16384     6316    10067
  Dalvik Heap     2444     2364        0        0     6538     4908     1630
 Dalvik Other      602      600        0        0                           
        Stack      108      108        0        0                           
       Ashmem        9        0        0        0                           
    Other dev        5        0        4        0                           
     .so mmap     1138      160        0       20                           
    .apk mmap      331        0        0        0                           
    .ttf mmap       22        0        0        0                           
    .dex mmap     5628       72     5556        0                           
    .oat mmap     1421        0        0        0                           
    .art mmap     1162      832        0        0                           
   Other mmap        9        4        0        0                           
   EGL mtrack      196      196        0        0                           
    GL mtrack     9017     9017        0        0                           
      Unknown      881      840       36        0                           
        TOTAL    27597    18733     5596       20    22922    11224    11697

 App Summary
                       Pss(KB)
                        ------
           Java Heap:     3196
         Native Heap:     4540
                Code:     5788
               Stack:      108
            Graphics:     9213
       Private Other:     1484
              System:     3268

               TOTAL:    27597       TOTAL SWAP PSS:       20

 Objects
               Views:       25         ViewRootImpl:        1
         AppContexts:        5           Activities:        1
              Assets:        4        AssetManagers:        2
       Local Binders:       11        Proxy Binders:       14
       Parcel memory:        3         Parcel count:       13
    Death Recipients:        0      OpenSSL Sockets:        0
            WebViews:        0

 SQL
         MEMORY_USED:        0
  PAGECACHE_OVERFLOW:        0          MALLOC_SIZE:        0

3 meminfo 信息横轴

3.1 Pss Total 实际使用内存

将跨进程共享页也加入进来, 进行按比例计算PSS。这样能够比较准确的表示进程占用的实际物理内存。

3.2 Private Dirty 或 Clean 私有内存

进程销毁时可以回收的内存容量

3.2.1 Private Dirty

通常private Dirty内存是最重要的部分,因为只被自己进程使用。Dirty内存是已经被修改的内存页,因此必须常驻内存(因为没有swap)

3.2.2 Private Clean

Clean内存是已经映射持久文件使用的内存页(例如正在被执行的代码),因此一段时间不使用的话就可以置换出去。

3.3 Heap Alloc

HeapAlloc 是Dalvik堆和本地堆分配使用的大小,它的值比Pss Total和Private Dirty大,因为进程是从Zygote中复制分裂出来的,包含了进程共享的分配部分。

4 meminfo 信息纵轴

4.1 Native Heap native

代码申请的内存, 堆和栈,及静态代码块等。

4.2 Dalvik Heap 虚拟机分配的内存

4.2.1 Pss Total 中的 Dalvik Heap

PSS Total包含所有Zygote分配使用的内存,共享跨进程加权。

4.2.2 PrivateDirty 中的 Dalvik Heap

PrivateDirty 是应用独占内存大小,包含独自分配的部分和应用进程从Zygote复制时被修改的Zygote分配的内存页。

4.3 … mmap

映射本地或虚拟机代码到使用的内存中

     .so mmap     1138      160        0       20                           
    .apk mmap      331        0        0        0                           
    .ttf mmap       22        0        0        0                           
    .dex mmap     5628       72     5556        0                           
    .oat mmap     1421        0        0        0                           
    .art mmap     1162      832        0        0                           
   Other mmap        9        4        0        0  

4.4 … mtrack

4.4.1 EGL mtrack

获取的是gralloc内存使用情况

4.4.1 GL mtrack

说明需要获取的是驱动程序报告的GL内存使用。它主要是GL纹理大小,GL命令缓冲区,固定的全局驱动程序RAM开销等的总和。

4.5 … Unknown

无法归类的其他项。主要包括大部分的本地分配。

4.5 TOTAL

进程总使用的实际内存。

猜你喜欢

转载自blog.csdn.net/su749520/article/details/80746972