1. procrank (only for Android)
它從/proc/pid/maps中讀取資訊來進行統計。源碼位於:/system/extras/procrank
記憶體耗用:VSS/RSS/PSS/USS
• VSS - Virtual Set Size 虛擬耗用記憶體(包含共用庫佔用的記憶體)
• RSS - Resident Set Size 實際使用實體記憶體(包含共用庫佔用的記憶體)
• PSS - Proportional Set Size 實際使用的實體記憶體(比例分配共用庫佔用的記憶體)
• USS - Unique Set Size 進程獨自佔用的實體記憶體(不包含共用庫佔用的記憶體)
2. cat /proc/pid/status
VmPeak: 表示進程所佔用最大虛擬記憶體大小
VmSize: 表示進程當前虛擬記憶體大小
VmLck: 表示被鎖定的記憶體大小
VmHWM: 表示進程所佔用實體記憶體的峰值
VmRSS: 表示進程當前佔用實體記憶體的大小(與procrank中的RSS)
VmData: 表示進程資料區段的大小
VmStk: 表示進程堆棧段的大小
VmExe: 表示進程代碼的大小
VmLib: 表示進程所使用共用庫的大小
VmPTE: 表示進程頁表項的大小
3. 舉例
shell@android:/ $ procrank PID Vss Rss Pss Uss cmdline16044 247156K 94580K 81361K 79708K com.android.pingpang16698 242440K 66436K 45516K 42064K com.android.yujiashell@android:/ $ cat /proc/16044/status VmPeak: 703476 kBVmSize: 550940 kBVmLck: 0 kBVmHWM: 101500 kBVmRSS: 94140 kBVmData: 102016 kBVmStk: 136 kBVmExe: 8 kBVmLib: 37968 kBVmPTE: 346 kBVmSwap: 0 kBThreads:22shell@android:/ $ cat /proc/16698/status VmPeak: 693460 kBVmSize: 516736 kBVmLck: 0 kBVmHWM: 71204 kBVmRSS: 66060 kBVmData: 58960 kBVmStk: 136 kBVmExe: 8 kBVmLib: 46568 kBVmPTE: 344 kBVmSwap: 0 kBThreads:26
參考:http://www.kernel.org/doc/man-pages/online/pages/man5/proc.5.html