查看内存分配情况
您可以通过两种方法检查应用的内存占用情况:使用 procstats
检查一段时间内的占用情况,或使用 meminfo
检查特定时间点的占用情况。 以下几个部分介绍如何使用这两种方法。
procstats
procstats
可以让您了解应用在一段时间内的表现,包括应用在后台运行的时长以及在该期间内的内存占用情况。它可以帮助您快速找到应用中的低效环节和不当行为(如内存泄漏),这些问题可能会影响应用的表现,特别是在低内存设备上运行时。其状态转储会显示有关每个应用的运行时间、按比例分摊的内存大小 (PSS)、独占内存大小 (USS) 和常驻内存大小 (RSS) 等统计信息。
如需获取过去三小时内应用的内存占用情况统计信息(采用简单易懂的格式),请运行以下命令:
adb shell dumpsys procstats --hours 3
如以下示例所示,输出会显示应用运行时间的百分比,以及相对样本数量的 PSS、USS 和 RSS (minPSS-avgPSS-maxPSS/minUSS-avgUSS-maxUSS/minRSS-avgRSS-maxRSS
)。
AGGREGATED OVER LAST 3 HOURS:* com.android.systemui / u0a37 / v28:TOTAL: 100% (15MB-16MB-17MB/7.7MB-8.7MB-9.4MB/7.7MB-9.6MB-84MB over 178)Persistent: 100% (15MB-16MB-17MB/7.7MB-8.7MB-9.4MB/7.7MB-9.6MB-84MB over 178)* com.android.se / 1068 / v28:TOTAL: 100% (2.8MB-2.9MB-2.9MB/300KB-301KB-304KB/304KB-22MB-33MB over 3)Persistent: 100% (2.8MB-2.9MB-2.9MB/300KB-301KB-304KB/304KB-22MB-33MB over 3)* com.google.android.gms.persistent / u0a7 / v19056073:TOTAL: 100% (37MB-38MB-40MB/27MB-28MB-29MB/124MB-125MB-126MB over 2)Imp Fg: 100% (37MB-38MB-40MB/27MB-28MB-29MB/124MB-125MB-126MB over 2)...* com.android.gallery3d / u0a62 / v40030:TOTAL: 0.01%Receiver: 0.01%(Cached): 54% (6.4MB-6.5MB-6.9MB/4.4MB-4.4MB-4.4MB/4.4MB-26MB-68MB over 6)* com.google.android.tvlauncher / u0a30 / v1010900130:TOTAL: 0.01%Receiver: 0.01%(Cached): 91% (5.8MB-13MB-14MB/3.5MB-10MB-12MB/12MB-33MB-78MB over 6)* com.android.vending:instant_app_installer / u0a16 / v81633968:TOTAL: 0.01%Receiver: 0.01%(Cached): 100% (14MB-15MB-16MB/3.8MB-4.2MB-5.1MB/3.8MB-30MB-95MB over 7)... Run time Stats:SOff/Norm: +32m52s226msSOn /Norm: +2h10m8s364msMod : +17s930msTOTAL: +2h43m18s520msMemory usage:Kernel : 265MB (38 samples)Native : 73MB (38 samples)Persist: 262MB (90 samples)Top : 190MB (325 samples)ImpFg : 204MB (569 samples)ImpBg : 754KB (345 samples)Service: 93MB (1912 samples)Receivr: 227KB (1169 samples)Home : 66MB (12 samples)LastAct: 30MB (255 samples)CchAct : 220MB (450 samples)CchCAct: 193MB (71 samples)CchEmty: 182MB (652 samples)Cached : 58MB (38 samples)Free : 60MB (38 samples)TOTAL : 1.9GBServRst: 50KB (278 samples)Start time: 2015-04-08 13:44:18Total elapsed time: +2h43m18s521ms (partial) libart.so