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