android 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