日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

移动端性能测试必备工具PerfDog性能狗

發布時間:2023/12/8 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 移动端性能测试必备工具PerfDog性能狗 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

致移動游戲&應用性能測試分析的伙伴們:
你是否會因移動游戲&APP性能問題,而備受煎熬?
你又是否因尋找性能測試分析工具,而彷徨迷茫?
你是否因工具需要,而嘗試各種ROOT/越獄?
你是否因工具準確性,而被逼各類花式復測驗證?
你是否因工具局限性,而同時開啟N個工具?
你又是否因工具空白,而被迫各式XCode源碼編譯?
ROOT/越獄越來越難,你我路在何方?
版本編譯坑羅密布,你我又將守夜到何時?

備受煎熬的時候一去不復返了,
因為移動全平臺性能測試分析神器來了,
它為移動游戲&APP測試分析而生,
它就是PerfDog性能狗!
背景:
在項目研發支持過程中,經歷如上障礙和痛苦。我們決定做一個完全獨立、簡單易用,與APP版本、系統版本、系統平臺無任何關系的性能平臺。

為了保證測試結果的準確性、嚴謹性和可對比性。我們編寫了Demo進行測試對比。

  • iOS平臺:
    PerfDog測試數據結果與XCode/Instrument(蘋果官方工具需要游戲源碼編譯測試)測試結果對齊一致。性能影響結果:Xcode/Instrument性能影響較大,PerfDog性能影響很小。

  • Android平臺:
    安卓平臺比較關注的是工具本身對手機性能影響,我們在小米5手機上鎖死最低頻率。開啟截圖測試影響結果如下:

  • PerfDog性能影響:CPU占比6%-10%(正常頻率下CPU占比1-3%)。

    其他工具性能影響:CPU占比27%-33%。

    備注:
    工具本身性能若影響大的話,手機容易發熱,同時對游戲&應用性能有很大影響。即測試出性能數據無法反應用戶真實情況。

    軟件性能數據采集:
    PerfDog支持移動平臺所有應用程序(游戲、APP應用、瀏覽器、小程序等)及Android模擬器,桌面應用程序PerfDog支持在Windows和Mac機器使用運行。在iOS和Android平臺獲取性能參數如下:

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

    Screenshot
    FPS(1秒內游戲畫面或者應用界面真實平均刷新次數,俗稱幀率/FPS)

  • Avg(FPS):平均幀率(一段時間內平均FPS)
  • Var(FPS):幀率方差(一段時間內FPS方差)
  • 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.
    1、 當前幀耗時>前三幀平均耗時2倍。
    2、 當前幀耗時>兩幀電影幀耗時(1000ms/242=84ms)。
    同時滿足兩條件,則認為是一次嚴重卡頓BigJank.
    1、 當前幀耗時>前三幀平均耗時2倍。
    2、 當前幀耗時>三幀電影幀耗時(1000ms/243=125ms)。
    計算思路:考慮視覺慣性,假設以前三幀的平均幀耗時為參考,作為vsync時間間隔,連續兩次vsync沒有新渲染畫面刷新,則認為是一次潛在卡頓,也就是說下一幀耗時大于前三幀平均幀耗時2倍,則認為一次潛在卡頓。同時單幀耗時滿足大于兩倍電影幀耗時1000ms/242 (由于人眼低于24幀才能辨別畫面不連續性),則認為是一次真正卡頓。同時若單幀耗時大于3倍電影幀耗時,則認為是一次嚴重卡頓。
    注解:為什么是兩次vsync?GPU一般是3重緩沖buffer,當前幀已占用一個buffer,即剩余2緩沖buffer,人眼一般可容忍2幀延遲。 為什么是兩幀電影幀耗時?低于24幀畫面,人眼就能感知到畫面不連續性,電影一般都是24幀。即電影幀耗時1000ms/24=41.67ms,兩幀電影幀耗時也就是41.67ms2,三幀電影幀耗時是41.67ms*3。
  • BigJank:1s內頓嚴重卡次數
  • Jank(/10min):平均每10分鐘卡頓次數。
  • BigJank(/10min):平均每10分鐘嚴重卡頓次數
    FTime(上下幀畫面顯示時間間隔,即認為幀耗時,iOS9.1以下系統暫時不支持。)
  • Avg(FTime):平均幀耗時
  • 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)
  • Render:渲染器利用率(像素著色處理階段,若占比高,說明是PS階段出現瓶頸,shader過于復雜或紋理大小、采樣復雜等)
  • Tilter:Tilter利用率(頂點著色處理階段,若占比高,說明是VS階段出現瓶頸,頂點數太多等原因)
  • Device:設備利用率(整體GPU利用率)
    Network(Recv/Send,測試目標進程流量,和Xcode結果一致)
    Battery Power(整機實時Current電流、Voltage電壓、Power功率)(注:和Xcode Instrument結果一致)
    Log(系統調試日志信息)
    Android平臺
    Screenshot
    FPS(1秒內游戲畫面或者應用界面真實平均刷新次數,俗稱幀率/FPS)
  • Avg(FPS):平均幀率(一段時間內平均FPS)
  • Var(FPS):幀率方差(一段時間內FPS方差)
  • Drop(FPS):降幀次數(平均每小時相鄰兩個FPS點下降大于8幀的次數)
    Jank(1s內卡頓次數。解釋說明如iOS平臺說明)
  • BigJank:1s內嚴重卡頓次數
  • Jank(/10分鐘):平均每10分鐘卡頓次數
  • BigJank(/10分鐘):平均每10分鐘嚴重卡頓次數
    FTime(上下幀畫面顯示時間間隔,即認為幀耗時)
  • Avg(FTime):平均幀耗時
  • 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 : 測試模式。

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

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

    步驟4 : 選擇測試的游戲&應用。
    PC如圖:

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

    功能介紹:

  • 性能參數控制Page:
    選擇需要收集性能參數,控制性能參數顯示page。

  • 記錄保存:

  • 測試結束時,可自主選擇兩種方式保存處理(Upload/Save)性能數據:

    1) 將性能數據同步上傳PerfDog云端web看板。

    2) 本地導出Excel文件。

  • 記錄回放(方便回看分析):
    打開要回放文件。
  • 回放結果如圖:

  • 批注及標定:
    鼠標左鍵雙擊,增加批注,再次雙擊,則取消批注。鼠標左鍵單擊,則增加標定,再次點擊則重新標定。

  • 設定性能參數統計分析閾值、編輯統計參數分析及框選記錄保存:
    可以通過鼠標框選/拖動查詢時間周期內,統計數據等。同時可對框選數據進行保存。工具左側“Setting”以設定對應的性能參數統計分析閾值等。

  • 場景Label標簽:
    通過標簽按鈕給性能數據打標簽,鼠標左鍵雙擊顏色區域可修改對應區域標簽名。

  • 屏幕記錄:
    注意:截屏記錄開啟,影響性能。

  • 多進程問題測試:
    iOS平臺,APP多進程分為APP Extension和系統XPC Server。
    比如:企鵝電競直播軟件用到APP Extension擴展進程(擴展進程名LABroadcastUpload)。當然也可能用到系統XPC Server服務進程,如一般web瀏覽器會用到webkit。
    備注:后期版本PerfDog提供XPC Server測試功能。
    Android平臺,一般大型APP,比如游戲有時候是多進程協作運行(微信小游戲,微視等APP及王者榮耀等游戲多子進程),可選擇目標子進程進行針對性測試。默認是主進程。如圖王者榮耀。

  • 微信小游戲、小程序測試等,如下是微信小游戲-浪漫玫瑰園:

  • Log日志功能:
    采集系統日志信息。

  • 停止功能:
    無需拔手機,選擇NULL即可停止采集信息。

  • Web云平臺功能介紹:

  • 個人性能數據MyData。
  • 具體性能數據展示。

  • 測試任務管理。
  • 創建任務邀請測試成員加入,或加入其他人創建的測試任務中。

  • 性能數據共享歸納。

  • 測試任務性能數據Task Data。

  • 重要提示:

  • PerfDog的 Windows & Mac OS X 客戶端都支持用戶對iOS和Android設備進行測試。
  • iOS平臺: 若PerfDog檢測不到連接手機或無法測試,請先安裝確保最新iTunes是否能連上手機。內存采集一直為0請重啟手機。
  • Android平臺:有兩種模式(非安裝模式,安裝模式)
    a) 非安裝模式:
    手機即插即用,無需任何設置及安裝,使用非常簡單,但手機屏幕上沒有實時性能數據顯示(請開啟Debug調試模式)。
  • b) 安裝模式:
    i. 需要在手機上自動安裝PerfDog.apk,手機屏幕上有實時性能數據顯示。(請開啟Debug調試模式、允許USB安裝和PerfDog懸浮窗管理權限),啟動PC版PerfDog.exe,則會在手機上自動PUSH安裝PerfDog.apk,具體安裝類似各個手機廠商安裝第三方APP提示安裝即可。(注:由于很多手機安裝需要賬號密碼,導致無法自動安裝,如果自動安裝失敗,則會把安裝文件PerfDog.apk釋放到當前文件夾里,手動安裝PerfDog.apk即可)。

    ii. 安裝模式下,在測試過程中,由于系統資源緊缺會kill PerfDog顯示app(手機界面性能數據顯示),但不影響正常測試功能。

  • WIFI模式:只能在WIFI模式測試功率等信息。USB連線后,在設備列表選擇WIFI圖標設備進行WIFI模式測試。WIFI檢測連接成功后,拔掉USB連接線。(注:需要PC和被測手機連接同一WIFI,WIFI檢測連接成功后,拔掉被測手機USB線(插線模式測試功率無任何意義))。
  • iOS平臺:Iphone小圓點/輔助觸控(AssistiveTouch)及Iphone x劉海手機的小白條/引導式訪問(Guided Access)影響PerfDog采集數據準確性,請關閉。
  • 截屏記錄影響性能(整體FPS影響<=1。小米5:CPU=1%左右。IPhone7P:CPU<2%),若無需請不要開啟截屏。
  • 性能測試技術交流群:720150565
    查看PerfDog詳情:https://perfdog.qq.com/?ADTAG=media.dev_website
  • 總結

    以上是生活随笔為你收集整理的移动端性能测试必备工具PerfDog性能狗的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。