dumpsysmeminfo
1.adb shell dumpsys meminfo
Total PSS by process:
161,563K: system (pid 1055)
88,345K: com.android.systemui (pid 1972)
系统中每个应⽤的PSS占⽤
2.adb shell dumpsys meminfo com.android.systemui [-d]
** MEMINFO in pid 1972 [com.android.systemui] **
Pss Private Private SwapPss Heap Heap Heap
Total Dirty Clean Dirty Size Alloc Free
------ ------ ------ ------ ------ ------ ------
Native Heap 28386 28316 0 0 38912 28335 10576
mapgis6.7Dalvik Heap 5766 5712 0 0 12070 6035 6035
Dalvik Other 3638 3628 0 0
Stack 60 60 0 0
Ashmem 128 52 0 0
Other dev 8 0 8 0
.so mmap 4104 236 192 0 ...
-d参数是可选参数,表⽰显⽰更多关于Dalvik和ART的内存信息 具体到某个进程的内存占⽤信息
3.adb shell procranksl9
PID Vss Rss Pss Uss Swap PSwap USwap ZSwap cmdline
1055 4555252K 263404K 139971K 121920K 0K 0K 0K 0K system_server
580 223524K 81164K 71166K 69752K 0K 0K 0K 0K /vendor/bin/hw/camerahalserver 1972 4405872K 196300K 68189K 51040K 0K 0K 0K 0K com.android.systemui
VSS表⽰Virtual Set Size 虚拟耗⽤内存(包含共享库占⽤的内存),表⽰进程可以访问的地址空间。 RSS表⽰Resident Set Size 实际使⽤物理内存(包含共享库占⽤的内存) PSS表⽰Proportional Set Size 实际使⽤的物理内存(⽐例分配共享库占⽤的内存)
巴洛特利养母USS表⽰Unique Set Size 进程独⾃占⽤的物理内存(不包含共享库占⽤的内存)内存泄漏分析
需要关注的是。meminfo拿到的信息和procrank拿到的内存数据有差异。
PSS的信息应该保持⼀致,USS应该与private dirty⼀致
机械运动复习原因:
4.adb shell cat / proc / meminfo
MemTotal: 888828 kB
pc133
MemFree: 32664 kB
MemAvailable: 352568 kB
Buffers: 2116 kB
Cached: 318564 kB
SwapCached: 3432 kB
5.adb shell procmem
这条命令针对某⼀条进程具体分析
6.heapgrowthlimit:每个虚拟机可⽤的最⼤内存
在应⽤的manifest⽂件中配置android:largeHeap属性true之后应⽤的最⼤可⽤内存变为heapsize
>场效应