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

相關文章
相關標籤/搜索