WeTest明星工具-移動端性能測試PerfDog初探

在十一月初,騰訊就官宣了一則消息,騰訊WeTest明星工具-PerfDog面向全球發佈。官宣介紹以下:https://wetest.qq.com/lab/view/475.html。我在看到該新聞時,有種大開眼界的感受,移動端的性能測試原來能夠這麼簡單。今天閒暇之餘,來了一波初探,簡單體驗了一番。html

軟件性能數據採集

咱們先來了解下經過該工具能採集到哪些性能數據:android

PerfDog支持移動平臺全部應用程序(遊戲、APP應用、瀏覽器、小程序等)及Android模擬器,桌面應用程序PerfDog支持在Windows和Mac機器使用運行。在iOS和Android平臺獲取性能參數以下:ios

iOS平臺 (與蘋果官方Xcode工具參數對齊一致)小程序

  • Screenshot
  • FPS(1秒內遊戲畫面或者應用界面真實平均刷新次數,俗稱幀率/FPS)
       1) Avg(FPS):平均幀率(一段時間內平均FPS)
       2) Var(FPS):幀率方差(一段時間內FPS方差)
       3) Drop(FPS):降幀次數(平均每小時相鄰兩個FPS點降低大於8幀的次數)
  • Jank(1s內卡頓次數。iOS9.1如下系統暫時不支持。相似Android的Jank卡頓和iOS的FramePacing平滑度統計原理。幀率FPS高並不能反映流暢或不卡頓。好比:FPS爲50幀,前200ms渲染一幀,後800ms渲染49幀,雖然幀率50,但依然以爲很是卡頓。同時幀率FPS低,並不表明卡頓,好比無卡頓時均勻FPS爲15幀。因此,平均幀率FPS與卡頓無任何直接關係)
        PerfDog計算方法:同時知足兩條件,則認爲是一次卡頓Jank.
        一、 當前幀耗時>前三幀平均耗時2倍。
        二、 當前幀耗時>兩幀電影幀耗時(1000ms/24*2=84ms)。
        同時知足兩條件,則認爲是一次嚴重卡頓BigJank.
        一、 當前幀耗時>前三幀平均耗時2倍。
        二、 當前幀耗時>三幀電影幀耗時(1000ms/24*3=125ms)。
    計算思路:考慮視覺慣性,假設之前三幀的平均幀耗時爲參考,做爲vsync時間間隔,連續兩次vsync沒有新渲染畫面刷新,則認爲是一次潛在卡頓,也就是說下一幀耗時大於前三幀平均幀耗時2倍,則認爲一次潛在卡頓。同時單幀耗時知足大於兩倍電影幀耗時1000ms/24*2 (因爲人眼低於24幀才能辨別畫面不連續性),則認爲是一次真正卡頓。同時若單幀耗時大於3倍電影幀耗時,則認爲是一次嚴重卡頓。
    註解:爲何是兩次vsync?GPU通常是3重緩衝buffer,當前幀已佔用一個buffer,即剩餘2緩衝buffer,人眼通常可容忍2幀延遲。 爲何是兩幀電影幀耗時?低於24幀畫面,人眼就能感知到畫面不連續性,電影通常都是24幀。即電影幀耗時1000ms/24=41.67ms,兩幀電影幀耗時也就是41.67ms*2,三幀電影幀耗時是41.67ms*3。
       1) BigJank:1s內頓嚴重卡次數
       2) Jank(/10min):平均每10分鐘卡頓次數。
       3) BigJank(/10min):平均每10分鐘嚴重卡頓次數
  • FTime(上下幀畫面顯示時間間隔,即認爲幀耗時,iOS9.1如下系統暫時不支持。)
       1) Avg(FTime):平均幀耗時 
       2) Delta(FTime):增量耗時(平均每小時兩幀之間時間差>100ms的次數)
  • CPU Usage(Total整機/App進程,統計結果合Xcode一致)
  • Memory (是統計FootPrint,注:OOM與FootPrint有關,與系統、機型無關。只與RAM有關,如1G內存機器。FootPrint超過650MB,引起OOM)。受iOS平臺限制,暫時沒法獲取ios10及如下系統的memory。後續版本增長。如作性能測試,建議升級iOS系統版本
  • Xcode Memory (XCode Debug Gauges統計方式即XCode Memory)。受iOS平臺限制,暫時沒法獲取ios10及如下系統的Xcode Memory。後續版本增長。如作性能測試,建議升級iOS系統版本
  • Real Memory(Xcode Instrument統計方式即Real Memory,實際佔用物理內存。注:物理內存與系統策略有關,關注意義不大)
  • Virtual Memory(虛擬內存)
  • Wakeups(線程喚醒次數)。注:超過150進程很大可能會被系統kill
  • CSwitch(上下文切換測試)。注:單核超過14000進程會被系統Kill
  • GPU Utilization(Render/Tilter/Device)
       1) Render:渲染器利用率(像素着色處理階段,若佔比高,說明是PS階段出現瓶頸,shader過於複雜或紋理大小、採樣複雜等) 
       2) Tilter:Tilter利用率(頂點着色處理階段,若佔比高,說明是VS階段出現瓶頸,頂點數太多等緣由)
       3) Device:設備利用率(總體GPU利用率)
  • Network(Recv/Send,測試目標進程流量,和Xcode結果一致)
  • Battery Power(整機實時Current電流、Voltage電壓、Power功率)(注:和Xcode Instrument結果一致)
  • Log(系統調試日誌信息)
Android平臺
  • Screenshot
  • FPS(1秒內遊戲畫面或者應用界面真實平均刷新次數,俗稱幀率/FPS)
       1) Avg(FPS):平均幀率(一段時間內平均FPS)
       2) Var(FPS):幀率方差(一段時間內FPS方差)
       3) Drop(FPS):降幀次數(平均每小時相鄰兩個FPS點降低大於8幀的次數)
  • Jank(1s內卡頓次數。解釋說明如iOS平臺說明)
       1) BigJank:1s內嚴重卡頓次數
       2) Jank(/10分鐘):平均每10分鐘卡頓次數
       3) BigJank(/10分鐘):平均每10分鐘嚴重卡頓次數 
  • FTime(上下幀畫面顯示時間間隔,即認爲幀耗時)
       1) Avg(FTime):平均幀耗時
       2) Delta(FTime):增量耗時(平均每小時兩幀之間時間差>100ms的次數)
  • CPU Usage(Total整機/App目標進程,統計結果和Android Studio Profiler一致)
  • CPU Clock(各個CPU核心的頻率和使用率)
  • Memory (PSS Memory,統計結果和Android Java API標準結果一致,與Meminfo也一致。注:部分三星機器系統修改了Meminfo底層統計方式,致使Meminfo與Java AP統計結果不一致,新出三星機器已修復)
  • Swap Memory (Swap Memory)
  • Virtual Memory
  • Memory Detail(NativePSS、GFX、GL、Unknown)
  • GPU Usage(目前僅支持高通芯片手機)
  • GPU Frequency(目前僅支持高通芯片手機)
  • Network(Recv/Send)
  • CTemp(CPU溫度)
  • Battery Power(Current電流、Voltage電壓、Power功率)(注:與儀器測試偏差<3%左右)
  • Log(系統調試日誌信息)

上述內容來自官網使用文檔。咱們瞭解了參數,就實際來操做一下吧。對於工具的介紹,網絡上都有,我就結合本身的實際體驗來講吧。瀏覽器

使用的基本流程

在本身實踐使用時,基本流程以下:網絡

1.註冊帳號(只有註冊帳號後才能下載安裝包) app

2.下載安裝包並解壓 工具

3.在perfdog後臺建立測試項目 性能

4.打開可執行文件PerfDog.exe 測試

5.使用註冊的帳號登陸

6.使用usb將手機和電腦鏈接(不能鎖屏,開啓調試模式)

7.選擇鏈接模式(wifi仍是usb)

8.選擇app應用列表

9.配置要監控的數據

10.開始記錄數據

11.操做對應app

12.中止記錄數據(不能少於10S)

13.上傳記錄數據

14.進入perfdog後臺查看性能數據

流程介紹

前五步操做就不講述了,你們都懂。咱們直接從第六步提及,我使用的是ios設備。

鏈接設備

iOS: 則即插即用,用戶無需作任何操做。

Android: 有兩種模式,非安裝模式和安裝模式。

  • a. 非安裝模式:

    手機即插即用,無需任何設置及安裝,使用很是簡單,但手機屏幕上沒有實時性能數據顯示。

  • b. 安裝模式:

    須要在手機上自動安裝PerfDog.apk,手機屏幕上有實時性能數據顯示。(請開啓Debug調試模式、容許USB安裝和PerfDog懸浮窗管理權限),啓動PC版PerfDog.exe,則會在手機上自動PUSH安裝PerfDog.apk,具體安裝相似各個手機廠商安裝第三方APP提示安裝便可。(注:因爲不少手機安裝須要帳號密碼,致使沒法自動安裝,若是自動安裝失敗,則會把安裝文件PerfDog.apk釋放到當前文件夾裏,手動安裝PerfDog.apk便可)。

這裏重點說明下Android平臺下,LMK和Swap這兩個參數意義:

LMK:Android平臺下OOM與遊戲進程內存大小無關,主要是系統剩餘物理內存有關。系統剩餘物理內存小於LMK,則會引發OOM。

Swap: 系統進程用到zram/vnswap內存壓縮技術。不一樣手機系統啓用Swap memeroy大小不一樣。

測試模式

經過usb鏈接電腦後,出現以下界面,能夠選擇測試模式:

USB模式測試:

  USB連線,在設備列表選擇USB圖標設備進行USB模式測試(插線模式測試功率無任何意義)。

WIFI模式測試(測試功率):

  USB連線後,在設備列表選擇WIFI圖標設備進行WIFI模式測試。WIFI檢測鏈接成功後,拔掉USB鏈接線。(注:須要PC和被測手機鏈接同一WIFI,WIFI檢測鏈接成功後,拔掉被測手機USB線(插線模式測試功率無任何意義))。

在實踐中,USB和WiFi模式我都有使用。選擇模式後,界面會展現設備的詳細信息,以下:

選擇測試應用

選擇模式後,則能夠選擇要測試的應用了(當前手機中的全部app均可以被選擇),以下頁面:

選擇對應被測應用,並操做對應的app,界面展現以下:

注意點:Android平臺,安裝模式下,手機屏幕左上角有實時性能數據顯示(Android手機請打開PerfDog懸浮窗管理權限,不然手機上不會顯示性能參數)。

開啓懸浮權限

android設備中的界面性能參數顯示以下:

功能介紹

1.性能參數配置

性能參數可在界面中配置,點擊界面中的+號便可,以下:

①點擊對應條目參數,顏色會變深,圖表數據則會展現在界面中

②勾選對應條目參數,表示須要收集該數據

2.記錄保存

點擊右側的藍色開始按鈕,則表示在記錄數據,以下:

須要注意的是:記錄時間不能少於10S。少於10S,則會提示以下信息:

點擊按鈕後,記錄會中止記錄並保存數據,以下:

2.1 提交記錄到perfdog後臺

能夠修更名稱,點擊confirm,數據會上傳到perfdog的後臺,以下:

能夠查看詳細的性能數據,以下所示:

2.2 記錄保存到本地

勾選保存按鈕,數據就會保存到本地,以下:

能夠打開excel文件查看對應的性能數據:

3.數據回放

點擊perfdog界面上的文件夾按鈕,選擇對應的本地數據,便可以回放記錄,操做以下:

可在界面查看回放結果,以下:

4.批註及標定

雙擊鼠標左鍵,增長批註,再次雙擊,則取消批註。

單擊鼠標左鍵,則增長標定,再次點擊則從新標定。

增長了批註和標定的界面以下所示,紅色爲批註,淡紫色爲標定:

5.性能參數分析

5.1 數據統計

能夠選擇一個時間段內的數據,進行統計,以下:

5.2 設置性能參數統計分析閾值

在perfdog界面中的setting下,能夠配置,以下:

5.3 保存框選數據

對某一時間段內的數據框選後,能夠單獨保存片斷,在框選範圍內,右鍵便可,以下:

6.場景標籤

經過標籤按鈕給性能數據打標籤,鼠標左鍵雙擊顏色區域可修改對應區域標籤名

7.日誌記錄

在perfdog界面,能夠查看對應日誌,也能夠設置查看日誌的等級,以下:

在嘗試WIFI模式時,發現log按鈕勾選不了。

8.中止功能

中止測試應用,不須要拔掉數據線,或者斷開鏈接,在選擇應用的界面中,選擇NULL便可,以下:

9.截圖錄屏

鏈接安卓設備,並使用安裝模式,可配置截屏參數,以下:

界面就會記錄操做的過程,以下所示:

如此記錄是否是很明瞭?但這種用法會影響性能參數,實際用途中不推薦。若是以爲新鮮,能夠嘗試使用便可。

PerfDog後臺使用

1.邀請人員

能夠邀請對應人員一塊兒維護測試項目

2.數據共享

數據共享後,能夠在任務數據中查看明細,可按android、ios區分,以及app包的版本,設備版原本查看。

使用注意點

1.設備鏈接

iOS: 若PerfDog檢測不到鏈接手機或沒法測試,請先安裝確保最新iTunes是否能連上手機。

Android: 請開啓手機Debug調試模式及容許USB安裝。

2.截圖記錄影響性能

截屏記錄影響性能(總體FPS影響<=1。小米5:CPU=1%左右。IPhone7P:CPU<2%),若無需請不要開啓截屏。

總結

使用PerfDog工具下來,總體有如下幾點感覺。

1.對性能指標的測試,更加便捷;

2.易操做

3.記錄支持回放

4.數據便於管理與查看

PerfDog工具是款不錯的性能測試工具,點贊一波。

最後,附上官方的操做手冊:https://perfdog.qq.com/support

相關文章
相關標籤/搜索