重要提示:
- 1. Windows & Mac OS X平臺PerfDog客戶端版本都支持用戶對iOS和Android設備進行測試。PC上PerfDog可多開,單PC可同時測試多臺手機。
- 2. PerfDog支持移動平臺全部應用程序(遊戲、APP應用、瀏覽器、小程序、小遊戲、H五、後臺系統進程等)及Android模擬器性能測試。
- 3. 支持APP多進程測試,如Android多子進程及iOS擴展進程APP Extension。
- 4. iOS平臺:iPhone小圓點/輔助觸控(AssistiveTouch)及iPhone x劉海手機的小白條/引導式訪問(Guided Access)影響PerfDog(性能狗)採集數據準確性,請關閉。
注:應用、遊戲中關閉小白條/引導式訪問(Guided Access)方法:
1. 點擊【設置】-【通用】-【輔助功能】-【引導式訪問】
2. 開啓【引導式訪問】,進入遊戲後,連按三下電源鍵,可完全隱藏home鍵。
3. 若想恢復home鍵,再按三下電源鍵便可恢復。
- 5. 截屏記錄、Log日誌收集會影響性能(總體FPS影響<=1。小米5:CPU=1%左右。iPhone7P:CPU<2%),若無需請不要開啓截屏或Log日誌收集。
- 6. 提示網絡鏈接失敗問題 多是PC網絡設置了網絡代理或啓用了抓包軟件,請關閉。
- 7. PerfDog沒法檢測到手機
Android平臺:
1)請開啓Debug調試模式(華爲設備,須要先開啓開發者選項中的 "僅充電"模式下容許ADB調試選項 ,再開啓usb調試)。
2)以上還不行,請從新打開PerfDog軟件及重啓手機。
3)以上還不行,請確認PC上ADB可能被獨佔(自動化測試框架、Android Studio工具等),請關閉工具及ADB.exe。
4)以上還不行,請用手機管家或手機助手檢測下。
iOS平臺:
1)須要手機信任。
2)以上還不行,請用itunes軟件檢測下是否能夠鏈接檢測到手機。
3)以上還不行,請重啓手機及換USB線(可能USB線老化)。
4)以上還不行,請重啓手機。
- 8. 如何收集更多性能參數?
UI右下方+號按鈕,自定義性能參數。勾選表示收集,選中對應框表示顯示。
- 9. 爲何我看不到GPU信息?
Android平臺,目前只支持部分高通GPU手機,後期陸續補全。
- 10. 爲何手機沒法測試電量功率?
只能在WIFI模式下測試電量,USB模式有充電測試無心義。iOS平臺下,有無線充電功能手機暫時不支持。
- 11. 爲何沒法截圖?
只在USB模式可以使用。
- 12. 爲何手機上看不到性能信息?
請打開手機懸浮窗口顯示權限。
- 13. 目前不支持win32系統,後期會支持。
- 14. 各類提示,反正沒法使用
請重啓手機或換USB線,重啓是萬能的。
- 15. Android雲真機測試流程
手機雲真機平臺ADB遠程調試->Copy遠程調試ADB命令信息->本地cmd命令窗口輸入剛Copy的ADB命令->回到手機雲真機平臺確認受權->PerfDog選擇雲真機測試。
- 16. Android模擬器測試和Android雲真機測試流程相似。
- 17. Android手機WIFI模式鏈接失敗?
部分華爲、OPPO手機請在僅充電模式下,進行WIFI模式鏈接。
- 18. iOS手機內存採集一直爲0,請重啓手機,Energy採集一直是0,請重啓測試的APP應用或者遊戲。
- 19. Mac11.15系統,須要作安全設置,不然會誤報PerfDog爲惡意軟件,具體設置方法爲:打開系統設置->安全性與隱私->通用->點擊仍然打開。
- 20. 沒法刪除PerfDog文件夾,請任務管理器關閉Adb.exe進程。
致移動遊戲&應用性能測試分析的夥伴們:
- 你是否會因移動遊戲&APP性能問題,而備受煎熬?
- 你又是否因尋找性能測試分析工具,而彷徨迷茫?
- 你是否因工具須要,而嘗試各類ROOT/越獄?
- 你是否因工具準確性,而被逼各種花式複測驗證?
- 你是否因工具侷限性,而同時開啓N個工具?
- 你又是否因工具空白,而被迫各式XCode源碼編譯?
- ROOT/越獄愈來愈難,你我路在何方?
- 版本編譯坑羅密佈,你我又將守夜到什麼時候?
- …
- 備受煎熬的時候一去不復返了,
- 由於移動全平臺性能測試分析神器來了,
- 它爲移動遊戲&APP測試分析而生,
- 它就是PerfDog性能狗!
背景:
在項目研發支持過程當中,經歷如上障礙和痛苦。咱們決定作一個徹底獨立、簡單易用,與APP版本、系統版本、系統平臺無任何關係的性能平臺。ios
爲了保證測試結果的準確性、嚴謹性和可對比性。咱們編寫了Demo進行測試對比。web
1. iOS平臺:
PerfDog測試數據結果與XCode/Instrument(蘋果官方工具須要遊戲源碼編譯測試)測試結果對齊一致。性能影響結果:Xcode/Instrument性能影響較大,PerfDog性能影響很小。小程序
2. Android平臺:
安卓平臺比較關注的是工具自己對手機性能影響,咱們在小米5手機上鎖死最低頻率。開啓截圖測試影響結果以下:xcode
PerfDog性能影響:CPU佔比6%-10%(正常頻率下CPU佔比1-3%)。瀏覽器
其餘工具性能影響:CPU佔比27%-33%。安全
備註:
工具自己性能若影響大的話,手機容易發熱,同時對遊戲&應用性能有很大影響。即測試出性能數據沒法反映用戶真實狀況。微信
軟件性能數據採集:
PerfDog支持移動平臺全部應用程序(遊戲、APP應用、瀏覽器、小程序等)及Android模擬器,桌面應用程序PerfDog支持在Windows和Mac機器使用運行。在iOS和Android平臺獲取性能參數以下:網絡
iOS平臺 (與蘋果官方Xcode工具參數對齊一致)app
- 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結果一致)
- Energy Usage(即爲Xcode Energy Impact。監控應用使用的能耗狀況(包括CPU、GPU、NetWork、Location、Display (iPhone X only)、Overhead)。(注:和Xcode Energy Impact結果一致。有線模式下測試。Total Energy<270爲Low,270 < Total Energy < 1000爲High,Total Energy>1000爲Very High)。
參考:https://help.apple.com/xcode/mac/11.0/index.html?localePath=en.lproj#/devf7f7c5fcd
- 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(系統調試日誌信息)
Web性能數據管理:
- 帳戶信息管理
- 性能數據管理、圖表展現、編輯、版本對比
- 性能測試任務管理
使用步驟:
-
步驟1 : Window PC/蘋果Mac機器上安裝、運行PerfDog客戶端。
iOS: 若PerfDog檢測不到鏈接手機或沒法測試,請先安裝確保最新iTunes是否能連上手機。
Android: 請開啓手機Debug調試模式及容許USB安裝。
-
步驟2 : 啓動PerfDog,而後USB鏈接手機,自動檢測添加手機到應用列表中。
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大小不一樣。
-
步驟3 : 測試模式。
-
步驟4 : 選擇測試的遊戲&應用。
PC如圖:
Android平臺,安裝模式下,手機屏幕左上角有實時性能數據顯示(Android手機請打開PerfDog懸浮窗管理權限,不然手機上不會顯示性能參數)。
功能介紹:
-
1. 性能參數控制Page:
選擇須要收集性能參數,控制性能參數顯示page。
-
2. 記錄保存:
測試結束時,可自主選擇兩種方式保存處理(Upload/Save)性能數據:
1) 將性能數據同步上傳PerfDog雲端web看板。
2) 本地導出Excel文件。
-
3. 記錄回放(方便回看分析):
打開要回放文件。
回放結果如圖:
-
4. 批註及標定:
鼠標左鍵雙擊,增長批註,再次雙擊,則取消批註。鼠標左鍵單擊,則增長標定,再次點擊則從新標定。
-
5. 設定性能參數統計分析閾值、編輯統計參數分析及框選記錄保存:
能夠經過鼠標框選/拖動查詢時間週期內,統計數據等。同時可對框選數據進行保存。工具左側「Setting」以設定對應的性能參數統計分析閾值等。
-
6. 場景Label標籤:
經過標籤按鈕給性能數據打標籤,鼠標左鍵雙擊顏色區域可修改對應區域標籤名。
-
7. 屏幕記錄:
注意:截屏記錄開啓,影響性能。
-
8. 多進程問題測試:
iOS平臺,APP多進程分爲APP Extension和系統XPC Server。
好比:企鵝電競直播軟件用到APP Extension擴展進程(擴展進程名LABroadcastUpload)。固然也可能用到系統XPC Server服務進程,如通常web瀏覽器會用到webkit。
Android平臺,通常大型APP,好比遊戲有時候是多進程協做運行(微信小遊戲,微視等APP及王者榮耀等遊戲多子進程),可選擇目標子進程進行鍼對性測試。默認是主進程。如圖王者榮耀。
微信小遊戲、小程序測試等,以下是微信小遊戲-浪漫玫瑰園:
備註:子程序進程名高亮顯示,表示當前子進程處於頂層。
-
9. Log日誌功能:
採集系統日誌信息。
-
10. 中止功能:
無需拔手機,選擇Stop Profilling便可中止採集信息。
Web雲平臺功能介紹: