能够使用adb shell dumpsys meminfo -a <process id>/<process name>来查看一个进程的memory。截图以下: html
Naitve Heap Size: 从mallinfo usmblks得到,表明最大总共分配空间 node
Native Heap Alloc: 从mallinfo uorblks得到,总共分配空间 linux
Native Heap Free: 从mallinfo fordblks得到,表明总共剩余空间 shell
Native Heap Size 约等于Native Heap Alloc + Native Heap Free 函数
mallinfo是一个C库, mallinfo 函数提供了各类各样的经过C的malloc()函数分配的内存的统计信息。 spa
Dalvik Heap Size:从Runtime totalMemory()得到,Dalvik Heap总共的内存大小。 htm
Dalvik Heap Alloc: Runtime totalMemory()-freeMemory() ,Dalvik Heap分配的内存大小。 blog
Dalvik Heap Free:从Runtime freeMemory()得到,Dalvik Heap剩余的内存大小。 进程
Dalvik Heap Size 约等于Dalvik Heap Alloc + Dalvik Heap Free
内存
OtherPss, include Cursor,Ashmem, Other Dev, .so mmap, .jar mmap, .apk mmap, .ttf mmap, .dex mmap, Other mmap, Unkown统计信息均可以在process的smap文件看到。
Objects and SQL 信息都是从Android Debug信息中得到。
其余类型 smap 路径名称 描述
Cursor /dev/ashmem/Cursor Cursor消耗的内存(KB)
Ashmem /dev/ashmem 匿名共享内存用来提供共享内存经过分配一个多个进程
能够共享的带名称的内存块
Other dev /dev/ 内部driver占用的在 “Other dev”
.so mmap .so C 库代码占用的内存
.jar mmap .jar Java 文件代码占用的内存
.apk mmap .apk apk代码占用的内存
.ttf mmap .ttf ttf 文件代码占用的内存
.dex mmap .dex Dex 文件代码占用的内存
Other mmap 其余文件占用的内存
参考:
http://man7.org/linux/man-pages/man3/mallinfo.3.html
http://www.gnu.org/software/libc/manual/html_node/Statistics-of-Malloc.html