在网上找了许多资料,终于弄懂了这四个东西代表的信息,感谢前辈们的伟大分享。
下面是对这四个玩意儿的个人解释:
Vss: 这个毫无疑问,众所周知的虚拟内存。
Rss: 这个是衡量一个进程的内存大小,包括了共享库,再通俗一点就是,一个so库文件,如果A进程使用了,会把这个SO库所占用的内存计算进这个值里面,B进程使用了,也会算进B进程里面。这个算的是物理内存。
PSS:比例共享的物理内存。形象一点就是,一个so库文件,A进程占用了,B进程也占用了,会根据一定比例,一部分算给A,一部分算给B。
Uss: 这个叫独立占用的物理内存。没有把共享库计算进去的值。
在这里,如果只是为了衡量一个进程占用内存大小的话,可以看Rss或者是Pss。如果是看整机的内存的话,绝对是看Pss,这个就不会对共享的库文件重复计算。
对于adb shell procrank 里面的值,Pss 的 Total 就是所理解的所有app占用的内存大小。