使用meminfo分析Android单个进程内存信息

能够使用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

http://gee.cs.oswego.edu/pub/misc/malloc.h

http://www.redwolf-blog.com/?p=882

相关文章
相关标签/搜索