adb shell dumpsys meminfo 詳解


dumpsys meminfo詳解
adb shell dumpsys meminfo [pkg/pid] 可以用來查看指定進程包名的內存使用情況

 

dumpsys meminfo -h 幫助
meminfo dump options: [-a] [-d] [-c] [-s] [--oom] [process]

-a: include all available information for each process.
-d: include dalvik details.
-c: dump in a compact machine-parseable representation.
-s: dump only summary of application memory usage.
-S: dump also SwapPss.
--oom: only show processes organized by oom adj.
--local: only collect details locally, don't call process.
--package: interpret process arg as package, dumping all
processes that have loaded that package.
--checkin: dump data for a checkin
If [process] is specified it can be the name or
pid of a specific process to dump.

 

 

 

名詞概念:

 

  • 虛擬內存:進程空間內的虛擬內存地址,理論上32位cpu一個進程有4GB的虛擬內存可以使用。
  • 物理內存:就是真正寫的到內存條上的,真實地址對進程不可見,由操作系統把虛擬內存地址映射到物理內存地址。
  • Size:指的就是分配了多少虛擬內存
  • Rss、Pss指的是實際物理內存使用的大小,由於這個內存段是純new出來的,沒有共享庫,所以這兩個值是一樣的。由於只給4MB的數組賦值,操作系統只給分配了4MB的真實物理內存。
  • Objects是統計App內部組件對象個數,其中Views、ViewRootImpl以及Activities個數,在Activity onDestroy后應該都會回收清零,如果onDestroy調用后這幾個對象個數沒有清零,就可能發生了內存泄漏。
  • android程序內存被分為2部分:native和dalvik,dalvik就是java堆,普通java對象是在java堆分配,而bitmap是直接在native上分配,對於內存的限制是 native+dalvik 不能超過最大限制。
 

 

名詞解釋:

 名詞 說明  補充 

Uptime

表示啟動到現在的時長,不包含休眠的時間,單位毫秒(ms)

 

Realtime

表示啟動到現在的時長,包含休眠的時間,單位毫秒(ms)

 

Native Heap

指c 中malloc出來的堆空間

 擴展:c++申請的內存為native process,java申請的內存:java process

Dalvik Heap

指java中new出來的java堆空間

只是占用的虛擬內存的空間
Pss Total 指占用了真實的物理內存的空間  
private dirty 指私有駐留內存 擴展:進程內存空間是虛擬內存,區分於物理內存,進程無法直接操作物理內存RAM。必要時,操作系統對其進行映射,使進程能應用到物理內存
Heap Size 指占用總內存(Heap  堆)  
Heap Alloc 指在虛擬地址中分配了這么多空間  
Heap Free 空閑內存  

   注:因為Android系統對dalvik的vm heapsize作了硬性限制,當java進程申請的java空間超過閾值時,就會拋出OOM異常(這個閾值可以是48M、24M、16M等,視機型而定)

   查看單個應用最大內存限制,輸入命令:getprop|grep heapgrowthlimit  得到結果該機型為192M。dalvik process 超過就會拋OOM異常

 

Applications Memory Usage (in Kilobytes):
Uptime: 246353123 Realtime: 292602983

** MEMINFO in pid 8410 [com.doctopia.zeroe] **
                   Pss  Private  Private  SwapPss     Heap     Heap     Heap
                 Total    Dirty    Clean    Dirty     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------
  Native Heap    52421    52336       24        0    82432    61868    20563
  Dalvik Heap    31844    31816        4        0    38652    30460     8192
 Dalvik Other    14051    14048        0       12
        Stack     3640     3640        0       28
       Ashmem       80       48        0        0
      Gfx dev    12848    12288      560        0
    Other dev       76        0       76        0
     .so mmap     2292      936      252       95
    .jar mmap        0        0        0        0
    .apk mmap     1642       76     1064        0
    .ttf mmap        0        0        0        0
    .dex mmap     6073     5860      132        4
    .oat mmap     2153        0        0        0
    .art mmap     2682     2408        8       82
   Other mmap      312        8      184        0
   EGL mtrack      432      432        0        0
    GL mtrack    26160    26160        0        0
      Unknown    14579    14576        0       18
        TOTAL   171524   164632     2304      239   121084    92328    28755

 App Summary
                       Pss(KB)
                        ------
           Java Heap:    34232
         Native Heap:    52336
                Code:     8320
               Stack:     3640
            Graphics:    39440
       Private Other:    28968
              System:     4588

               TOTAL:   171524       TOTAL SWAP PSS:      239

 Objects
               Views:      821         ViewRootImpl:        2
         AppContexts:        6           Activities:        3
              Assets:        6        AssetManagers:        3
       Local Binders:       62        Proxy Binders:       36
       Parcel memory:       24         Parcel count:       98
    Death Recipients:        2      OpenSSL Sockets:       25
            WebViews:        1

 SQL
         MEMORY_USED:      279
  PAGECACHE_OVERFLOW:       76          MALLOC_SIZE:       62

 DATABASES
      pgsz     dbsz   Lookaside(b)          cache  Dbname
         4       24             38      1254/33/7  /data/user/0/com.doctopia.zeroe/databases/sensorsdata
         4       60            136      141/56/20  /data/user/0/com.doctopia.zeroe/databases/bugly_db_

 Asset Allocations
    zip:/data/app/com.doctopia.zeroe-1/base.apk:/resources.arsc: 972K

 

其他常用服務信息查詢

  • 內存 adb shell dumpsys meminfo
  • CPU adb shell dumpsys cpuinfo
  • 幀率 adb shell dumpsys gfxinfo
  • 顯示 adb shell dumpsys display
  • 電源 adb shell dumpsys power
  • 電池狀態 adb shell dumpsys batterystats
  • 電池 adb shell dumpsys battery
  • 鬧鍾 adb shell dumpsys alarm
  • 位置 adb shell dumpsys location

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM