最近在调试zygote的内存占用问题,这个进程用top或者dumpsys meminfo得到一个总体的内存占用,但是不能通过dumpsys meminfo zygote或者am dumpheap zygote都不可以,因为这个可以算得上是一个native 的process,所以只能通过其它办法来调试。
调试native内存占用有valgrid,不过这个太麻烦,不算太直观,所以我想起来一个方法,可以参考top或者ps的计算办法,于是百度一下这个源码,得出要查看每个进程的smaps,cat一下就能得出来,具体参考smaps的字段。
VmFlags: rd wr mr mw me ac
70184000-70b60000 r--p 00000000 fe:09 104 /data/dalvik-cache/arm64/system@framework@boot.oat
Size: 10096 kB
KernelPageSize: 4 kB
MMUPageSize: 4 kB
Rss: 3136 kB
Pss: 3136 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 3136 kB
Private_Dirty: 0 kB
Referenced: 3136 kB
Anonymous: 0 kB
LazyFree: 0 kB
AnonHugePages: 0 kB
ShmemPmdMapped: 0 kB
Shared_Hugetlb: 0 kB
Private_Hugetlb: 0 kB
Swap: 0 kB
SwapPss: 0 kB
Locked: 3136 kB
VmFlags: rd mr mw me