赞
踩
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
标签:shell,meminfo,dumpsys,process,adb,内存,Heap,android
来源: https://www.cnblogs.com/helloTerry1987/p/13109971.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。