关于android APP PSS计算方法

通过adb shell dumpsys meminfo + pid可以得到如下信息:

Applications Memory Usage (in Kilobytes):
Uptime: 30456752 Realtime: 106205372

** MEMINFO in pid 2188 [com.android.systemui] **
                   Pss  Private  Private  SwapPss     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap    11875    11148      708    70091    96640    80732    15907
  Dalvik Heap     8681     8416      248      340    15441     6225     9216
 Dalvik Other     3860     3576      284       69
        Stack       36       36        0       20
       Ashmem        6        0        0        0
    Other dev       14        0        8        0
     .so mmap     1184      152      144      353
    .jar mmap        0        0        0        1
    .apk mmap     1027        0      772        0
    .ttf mmap      238        0      184        0
    .dex mmap     6397        0     4476        4
    .oat mmap     1499        0      228        0
    .art mmap     1036      624      164       28
   Other mmap     1304        0      608        4
   EGL mtrack     6701     6701        0        0
    GL mtrack    15773    15773        0        0
      Unknown      540      496       44      744
        TOTAL   131825    46922     7868    71654   112081    86957    25123

 App Summary
                       Pss(KB)
                        ------
           Java Heap:     9204
         Native Heap:    11148
                Code:     5956
               Stack:       36
            Graphics:    22474
       Private Other:     5972
              System:    77035

               TOTAL:   131825       TOTAL SWAP PSS:    71654

 Objects
               Views:     1133         ViewRootImpl:        5
         AppContexts:       21           Activities:        1
              Assets:        9        AssetManagers:        8
       Local Binders:      192        Proxy Binders:       69
       Parcel memory:       31         Parcel count:      132
    Death Recipients:        2      OpenSSL Sockets:        0
            WebViews:        0

 SQL
         MEMORY_USED:      145
  PAGECACHE_OVERFLOW:        9          MALLOC_SIZE:      117

 DATABASES
      pgsz     dbsz   Lookaside(b)          cache  Dbname
         4       20             19         0/18/1  /data/user_de/0/com.android.systemui/databases/timezones.db3

 Asset Allocations
    zip:/system/priv-app/MtkSystemUI/MtkSystemUI.apk:/assets/fonts/hiosClock_regular.ttf: 10K

下面讲一下这里面关于memory信息的数据关系,以下计算公式主要通过代码研究得到:

PSS total= Pss Total列总和 + SwapPss Dirty列总和

即:total=11875+8681+3860+36+6+14+1184+1027+238+6397+1499+1036+1304+6701+15773+540+70097+340+69+20+353+1+4+28+4+744=131825KB

Java heap=Dalvik private dirty+.art mmap private clean+.art mmap private dirty=8461+624+164 =9204

native heap = native private dirty=11148

code = .so private (clean+dirty) + .jar private (clean+dirty) + .apk private (clean+dirty) + .ttf private (clean+ dirty) + .dex private (clean + dirty) + .oat private (clean + dirty)=152+144+772+184+4476+228=5956

stack = stack private dirty = 36

graphics= GL mtrack private (clean + dirty) + EGL mtrack private(clean + dirty)=6701+15773=22474

private other= private clean列+private dirty列-java heap-native heap-code-stack-graphic=46922+7868-9204-11148-5956-36-22474=5972

system=total-private Clean 列总和+private dirty列总和=131825-46922-7868=77035


猜你喜欢

转载自blog.csdn.net/zsj100213/article/details/80598351
今日推荐