APP性能測試

今天在testhome上聽到某位厲害的人物講他們專項測試的性能測試,由於本身也作過性能專項測試可是是客戶端PC上的,如今我總結下他提到的一些內容和我本身的一些見解java

    性能專項咱們關注哪些:shell

      1.關注資源消耗(CPU、內存、流量、功耗)工具

      2.啓動耗時(冷啓、熱啓),(這個也是不少雲測時用到的一個指標)性能

      3.主要頁面加載時間測試

      4.內存泄漏、抖動、卡頓、頁面渲染(FPS)ui

今天我也只總結資源消耗這塊,先談談CPUspa

1.cpu.net

cpu檢測咱們要分3種狀況:blog

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 meminfo
2.adb shell meminfo PID
 
手機運行速度就和內存有很大關係,我記得之前的同事能夠研究這個內存,還專門成立了一個小組,可見這個水仍是挺深的,並且本身也是知會一點,着重有幾個指標須要理解:
vss,虛擬內存 ,每個應用時一個java虛擬機,系統會分配一個內存,內存每作一個操做,這樣是控制內存的大小,可是不會大於最大限制,虛擬內存就就消失掉,咱們比較關心
Rss 物理內存(包含共享庫的內存),應用實際佔用的內存,
pss實際使用的物理內存(比例分配共享佔用內存) 如3個進程,那麼進程的消耗就應該是除以3,才表示一個
USS 進程中獨自佔用內存
USS針對某個進程開始有內存泄漏的狀況,是一個程序啓動了會產生的虛擬內存,一旦這個程序進程殺掉就會釋放   
這個博主我以爲講的更好,我只是皮毛而已http://blog.csdn.net/bigconvience/article/details/35553983
n內存要屢次測試
使用PID的方式查看:
 
 
咱們關注的是:Heap size 是實際用到的內存       Heap alloc :是實際分配的值
問題:可是你能夠發現alloc<size 爲何會這樣,我如今仍是不是很還能懂,他們一句話解釋是說:進程使用的是虛擬內存,虛擬內存使用遠大於物理內存,我如今還不是很懂,
內存咱們還能夠查看他的單個應用程序最大的內存限制
adb shell getprop |grep heapgrowthlimit
另一種方式:咱們還可使用procrank工具,就能夠查看內存值

 

3.流量

大神說可使用adb shell cat/proc/「+PID+」/net/dev 的命令來查看流量數

可是我以爲這樣不許確,我獲取流量的方式是經過抓包的方式,在一個操做內,看流量中的消耗,能夠藉助wireshork這個工具來幫忙

大概以上是他提到的內容和本身的理解

總結:

作性能測試的方式有兩種:1.競品分析   2.版本對比  這是如今不少公司使用的一種方式

在說一句:騰訊的GT仍是很好用的,網上能夠下載,能夠試試

相關文章
相關標籤/搜索