Android动态获取当前应用占用的内存PSS,Java
Debug.MemoryInfo memoryInfo = new Debug.MemoryInfo();
Debug.getMemoryInfo(memoryInfo);
long pssKB = memoryInfo.getTotalPss();
单位是KB。
也可以通过adb命令获取:
adb shell dumpsys meminfo
PSS与RSS的区别
在Android和Linux系统中,PSS(Proportional Set Size)和RSS(Resident Set Size)是衡量进程内存占用的关键指标,主要区别如下:
RSS:表示进程实际占用的物理内存总量,包括私有内存和完整共享库内存(即使被多个进程共享也重复计算)。
例如:一个共享库被3个进程使用,RSS会将该库内存全量计入每个进程。
PSS:在RSS基础上对共享内存进行按比例分配。同一共享库被3个进程使用时,每个进程仅计算1/3的共享内存。
RSS 计算简单快速,适合实时监控36 缺点是很可能高估内存占用(共享库重复计算)。
PSS 更真实反映系统级内存压力(所有进程PSS之和=系统总占用)。缺点是计算开销较大(需统计共享比例)。