基于msm-5.4
一、前言
1. 相关名词介绍
RSS(Resident Set Size):
这是进程当前在物理内存中占用的空间,包括进程本身和所有链接库。RSS是评估进程内存占用的一个重要指标,它直接反映了进程当前实际使用的物理内存量。但由于包含了共享库,用处不大。
PSS(Proportional Set Size):
与RSS不同,PSS考虑了共享内存的情况,它计算了每个进程对共享内存的贡献,并通过等比例来分配共享内存的使用量。PSS更适合用来比较不同进程的内存使用情况,因为它避免了重复计算共享内存的问题。
此数据非常有用,因为系统中所有进程的PSS都相加的话,就刚好反映了系统中的总共被占用的内存量。而当一个进程被销毁之后, 其占用的共享库那部分比例的PSS,将会再次按比例分配给余下使用该库的进程。
USS(Unique Set Size):
这是进程独占的物理内存量,不考虑共享库占用的内存。USS可以用来计算某个进程真正独占的内存资源。
USS是非常有用的数据,因为它反映了运行一个特定进程真实的边际成本(增量成本)。当一个进程被销毁后,USS是真实返回给系统的内存。当进程中存在一个可疑的内存泄露时,USS是最佳观察数据。
VSS(Virtual Set Size)
虚拟内存占用,包含共享库,以及分配但未使用内存。其大小还包括可能不在RAM中的内存(比如虽然malloc分配了空间,但尚未写入)。VSS 很少被用于判断一个进程的真实内存使用量,用处不大。
二、cat /proc/meminfo
TODO:
三、dumpsys meminfo <apk-name>
四、dumpsys meminfo
参考:
如何评估一个进程占用的内存空间:https://zhuanlan.zhihu.com/p/141590426 //TODO: 看后再BK
内存耗用:VSS/RSS/PSS/USS 的介绍:https://www.jianshu.com/p/3bab26d25d2e
Linux 进程实际内存占用计算方法 - vsz,vss,rss,pss,uss 介绍:https://www.modb.pro/db/418816