標籤:
今天在testhome上聽到某位厲害的人物講他們專項測試的效能測試,因為自己也做過效能專項測試但是是用戶端PC上的,現在我總結下他提到的一些內容和我自己的一些看法
效能專項我們關注哪些:
1.關注資源消耗(CPU、記憶體、流量、功耗)
2.啟動耗時(冷啟、熱啟),(這個也是很多雲測時用到的一個指標)
3.主要頁面載入時間
4.記憶體流失、抖動、卡頓、頁面渲染(FPS)
今天我也只總結資源消耗這塊,先談談CPU
1.cpu
cpu檢測我們要分3種情況:
1.在空閑時間的消耗,基本沒大應用使用cpu
2.在運行一些應用的情況下,cpu已佔50%的情況下,觀察應用程式佔用cpu的情況
3.在高負荷的情況下看CPU的表現,我定義這個高負荷,cpu佔用應是在80%以上
1.1 如何查看CPU的使用值
使用命令:adb shell dumpsys cpuinfo apk包名
從我們可以看出:6.4%是針對這個CPU的佔用率是6.4%,標紅的地方5.2%佔用率是使用者使用的,1.1是核心的佔用率,這個數只是針對1核來說,
問題:現在手機都是多核的了,那這樣的值也不會太準確,那怎麼做?
經驗:一般這種取值的,我在測試的時候,會多採集幾次,求平均值
上面資料太多了,我們還可以可以用下面這個命令,和top命令,擷取單個資料
adb shell dumpsys cpuinfo |grep packagename
2.記憶體篇
記憶體的方式和cpu類似,我們通過多次採集,得出記憶體值,看記憶體是否異常,那如何擷取記憶體值
怎麼取記憶體,用命令1.adb shell dumpsys meminfo2.adb shell meminfo PID 手機運行速度就和記憶體有很大關係,我記得以前的同事可以研究這個記憶體,還專門成立了一個小組,可見這個水還是挺深的,而且自己也是知會一點,著重有幾個指標需要理解:vss,虛擬記憶體 ,每一個應用時一個java虛擬機器,系統會分配一個記憶體,記憶體每做一個操作,這樣是控制記憶體的大小,但是不會大於最大限制,虛擬記憶體就就消失掉,我們比較關心Rss 實體記憶體(包含共用庫的記憶體),應用實際佔用的記憶體,pss實際使用的實體記憶體(比例分配共用佔用記憶體) 如3個進程,那麼進程的消耗就應該是除以3,才表示一個USS 進程中獨自佔用記憶體USS針對某個進程開始有記憶體流失的情況,是一個程式啟動了會產生的虛擬記憶體,一旦這個程式進程殺掉就會釋放 這個博主我覺得講的更好,我只是皮毛而已http://blog.csdn.net/bigconvience/article/details/35553983n記憶體要多次測試使用PID的方式查看: 我們關注的是:Heap size 是實際用到的記憶體 Heap alloc :是實際分配的值問題:但是你可以發現alloc<size 為什麼會這樣,我現在還是不是很還能懂,他們一句話解釋是說:進程使用的是虛擬記憶體,虛擬記憶體使用遠大於實體記憶體,我現在還不是很懂,記憶體我們還可以查看他的單個應用程式最大的記憶體限制adb shell getprop |grep heapgrowthlimit另外一種方式:我們還可以使用procrank工具,就可以查看記憶體值
3.流量
大神說可以使用adb shell cat/proc/“+PID+”/net/dev 的命令來查看流量數
但是我覺得這樣不準確,我擷取流量的方式是通過抓包的方式,在一個操作內,看流量中的消耗,可以藉助wireshork這個工具來幫忙
大概以上是他提到的內容和自己的理解
總結:
做效能測試的方式有兩種:1.競品分析 2.版本對比 這是現在很多公司使用的一種方式
APP效能測試