前段时间在做些关于App的性能测试,先了些关于内存方面的基础知识。
1. 内存名字:
VSS = Virtual set size = 虚拟耗用内存(包含共享库占用的内存)
RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存)
PSS- Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
USS- Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
看不懂?其实我也不是很懂。转载一篇博客,它的后面黄色部分有对这个4个内存做出一定的解释(http://www.cnblogs.com/0616--ataozhijia/p/3713542.html)。
但是有个结论:In general, the two numbers you want to watch are the Pss and Uss (Vss and Rss are generally worthless, because they don‘t accurately reflect a process‘s usage of pages shared with other processes)
结论来源地址:http://elinux.org/Android_Memory_Usage
2. PSS和USS的测试意义:
1. USS是非常准确的反应了一个APP的内存情况,PSS准确度稍差,但是还是可以使用。
2. 关于PSS的一点小说明:The “Proportionate Set Size” is a statistic that the Android system computes, to determine if it is going to kill your process.[android系统会根据APP在PSS上占用的多少,来决定是否杀掉这个进程]
结论来源地址:http://www.littleeye.co/blog/2013/06/11/android-memory-management-understanding-app-pss/
3. 如何获取PSS和USS:
a. procrank工具:命令 procrank | grep APK_pakagename (说明,此工具一般手机都不会有[不管是否root],工程系统才会存在,比如:CyanogenMod) / 它可以查询到:USS,VSS,RSS,PSS,非常高效但是对手机系统有一定要求。
b. dumpsys命令:dumpsys meminfo APK_pakagename,此命令可以获取到PSS,查看total Pss 即可。
4. RSS和VSS
a. 可以使用 adb Top或者 ps 命令获取,但是意义不大,不建议使用此命令测试APP的内存占用。