標籤:
前段時間在做些關於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的記憶體佔用。
Android記憶體_從測試角度理解