軟件性能數據采集:
iOS平台(蘋果官方Xcode工具參數對齊。注:iOS系統對進程性能參數做嚴格限制,超過限制則會被系統kill)
l ScreenShot(只支持USB模式)
l FPS(1秒內游戲畫面或者應用界面真實平均刷新次數,俗稱幀率/FPS)
1) Avg(FPS):平均幀率(一段時間內平均FPS)
2) Var(FPS):幀率方差(一段時間內FPS方差)
3) Drop(FPS):降幀次數(平均每小時相鄰兩個FPS點下降大於8幀的次數)
lJank(1s內卡頓次數。iOS9.1以下系統暫時不支持。類似Android的Jank卡頓和iOS的FramePacing平滑度統計原理。幀率FPS高並不能反映流暢或不卡頓。比如:FPS為50幀,前200ms渲染一幀,后800ms渲染49幀,雖然幀率50,但依然覺得非常卡頓。同時幀率FPS低,並不代表卡頓,比如無卡頓時均勻FPS為15幀。所以平均幀率FPS與卡頓無任何直接關系)
PerfDog Jank計算方法:
1. 同時滿足以下兩條件,則認為是一次卡頓Jank.
a) 當前幀耗時>前三幀平均耗時2倍。
b) 當前幀耗時>兩幀電影幀耗時(1000ms/24*2=84ms)。
2. 同時滿足兩條件,則認為是一次嚴重卡頓BigJank.
a) 當前幀耗時>前三幀平均耗時2倍。
b) 當前幀耗時>三幀電影幀耗時(1000ms/24*3=125ms)。
1) BigJank:1s內嚴重卡頓次數
2) Jank(/10min):平均每10分鍾卡頓次數。
3) BigJank(/10min):平均每10分鍾嚴重卡頓次數
l FTime(上下幀畫面顯示時間間隔,即認為幀耗時,iOS9.1以下系統暫時不支持)
1) Avg(FTime):平均幀耗時
2) Delta(FTime):增量耗時(平均每小時兩幀之間時間差>100ms的次數)
l CPU Usage(Total整機/App進程,統計結果和Xcode一致,PerfDog使用率=Xcode使用率/核心數)
l Memory (是統計FootPrint,注:OOM與FootPrint有關,與系統、機型無關。只與RAM有關,如1G內存機器。FootPrint超過650MB,引發OOM)。注:PerfDog暫時在iOS9、10系統無法獲取,其他版本ok。后續版本增加。如做性能測試,建議升級iOS系統版本
Xcode Memory (XCode Debug gauges統計方式即XCode Memory)。注:iOS9、10系統暫時無法獲取,其他版本ok。后續版本增加。如做性能測試,建議升級iOS系統版本
l Real Memory(Xcode Instrument統計方式即Real Memory,實際占用物理內存。注:物理內存系統策略有關,衡量內存指標時不會關注,但是它有助於分析定位整體性能問題。比如:footprint沒有降低,說明應用沒有釋放內存,但是real memory卻降低了,說明系統對內存做了壓縮。由於壓縮會占用CPU資源,同時相應會導致FPS降低)
l Virtual Memory(虛擬內存)
l Wakeups(線程喚醒次數。注:超過150進程很大可能會被系統kill。a sleep/wake cycle on each thread per second,Exceeding limit of 150 wakeups per second over 300 seconds,特別是iOS13.2悶殺后台進程事件,建議重點關注)
l CSwitch(上下文切換測試。注:單核超過14000進程會被系統Kill。Context Switch Limit 14000(Core/Second)
l GPU Utilization
1) Render:渲染器利用率(像素着色處理階段,若占比高,說明是PS階段出現瓶頸,shader過於復雜或紋理大小、采樣復雜等)
2) Tilter:Tilter利用率(頂點着色處理階段,若占比高,說明是VS階段出現瓶頸,頂點數太多等原因)
3) Device:設備利用率(整體GPU利用率)
l Network(Recv/Send,測試目標進程流量,統計結果合Xcode一致)
lBTemp(電池溫度)
lBattery Power(整機實時Current電流、Voltage電壓、Power功耗)(注:20s獲取一次,目前最精准的統計方式,結果和Battery life結果一致,支持所有iOS機型)
l Energy Usage(即為Xcode Energy Impact。監控應用使用的能耗情況(包括CPU、GPU、NetWork、Location、Display (iPhone X only)、Overhead)。(注:和Xcode Energy Impact結果一致。有線模式下測試,支持iOS9及以上系統。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
l Log日志采集(WIFI模式下,不支持Log收集)
Android平台
l ScreenShot(只支持USB模式)
l FPS(1秒內游戲畫面或者應用界面真實平均刷新次數,俗稱幀率/FPS)
1) Avg(FPS):平均幀率(一段時間內平均FPS)
2) Var(FPS):幀率方差(一段時間內FPS方差)
3) Drop(FPS):降幀次數(平均每小時相鄰兩個FPS點下降大於8幀的次數)
l Jank(1S內卡頓次數。解釋說明如iOS平台說明)
1) BigJank:1s內嚴重卡頓次數
2) Jank(/10分鍾):平均每10分鍾卡頓次數。
3) BigJank(/10分鍾):平均每10分鍾嚴重卡頓次數
l FTime(上下幀畫面顯示時間間隔,即認為幀耗時)
1) Avg(FTime):平均幀耗時
2) Delta(FTime):增量耗時(平均每小時兩幀之間時間差>100ms的次數)
l CPU Usage(Total整機/App目標進程,統計結果和Android Studio Profiler一致)
l CPU Clock(各個CPU核心的頻率和使用率)
l Memory (PSS Memory,統計結果和Android Java API標准結果一致,與Meminfo也一致。注:部分三星機器系統修改了Meminfo底層統計方式,導致Meminfo與Java AP統計結果不一致,新出三星機器已修復)
l Swap Memory (Swap Memory,部分設備支持Swap功能,在啟用Swap功能后,系統會對PSS內存進行壓縮,Swap增加,PSS會相應減少,由於壓縮會占用CPU資源,同時相應會導致FPS降低)
l Virtual Memory(VSS)
l Memory Detail(NativePSS、GFX、GL、Unknown)
l GPU Usage(目前僅支持部分高通芯片手機)
l GPU Frequency(目前僅支持部分高通芯片手機)
l Network(Recv/Send)
l CTemp(CPU溫度)
l Battery Power(Current電流、Voltage電壓、Power功耗)(注:與儀器測試誤差<3%左右)
l Log日志采集(WIFI模式下,不支持Log收集)
Web性能數據管理:
l 賬戶信息管理
l 性能數據管理、圖表展示、編輯、版本對比
l 性能測試任務管理
為了保證測試結果的正確嚴謹性及可對比性。我們寫了demo及APP進行測試對比。
1、iOS平台:
PerfDog性能狗測試數據結果與XCode/Instrument(蘋果官方工具需要游戲源碼編譯測試)測試結果一致。(注:Xcode/Instrument性能影響較大,PerfDog(性能狗)性能影響很小)
2、Android平台:
安卓平台比較關注的是工具本身對手機性能影響,為了測試的嚴謹性、可對比性,我們在小米5手機上鎖死最低頻率。含截圖測試影響結果如下:
PerfDog(性能狗)性能影響:CPU占比6%-10%(正常頻率下CPU占比1-3%)。
其他工具性能影響:CPU占比27%-33%
備注:工具本身性能影響大的話,手機容易發熱,同時對游戲&應用性能有很大影響。
使用步驟:
步驟1:Window PC/蘋果Mac機器上安裝、運行PerDog(性能狗)客戶端。
iOS:若PerfDog檢測不到連接手機或無法測試,請先安裝確保最新itunes是否能連上手機(最新itunes可在QQ管家上直接下載安裝)。
Android:請開啟手機USB調試模式及允許USB應用安裝。
步驟2:啟動PerfDog(性能狗),然后USB連接手機,自動檢測添加手機到應用列表中。
iOS:則即插即用,用戶無需做任何操作。
Android:有兩種模式,非安裝模式和安裝模式。(注:需開啟USB調試模式)。
a. 非安裝模式:
手機即插即用,無需任何設置及安裝,使用非常簡單,但手機屏幕上沒有實時性能數據顯示。
b. 安裝模式:
需要在手機上自動安裝PerfDog.apk,手機屏幕上有實時性能數據顯示(允許USB應用安裝和PerfDog懸浮窗管理權限),啟動PC版PerfDog.exe,則會在手機上自動PUSH安裝PerfDog.apk,具體安裝類似各個手機廠商安裝第三方APP提示安裝即可。(注:由於很多手機安裝需要賬號密碼,導致無法自動安裝,如果自動安裝失敗,則會把安裝文件PerfDog.apk釋放到當前文件夾里,手動安裝PerfDog.apk即可)。此模式下,在測試過程中,可能由於系統資源緊缺會kill PerfDog顯示app(手機界面性能數據顯示),但不影響正常測試功能。
步驟3:測試模式
l USB模式測試:
USB連線后,在設備列表選擇USB圖標設備進行USB模式測試
l WIFI模式測試(測試功率):
只能在WIFI模式測試功率等信息。USB連線后,在設備列表選擇WIFI圖標設備進行WIFI模式測試。WIFI檢測連接成功后,拔掉USB連接線。(注:需要PC和被測手機連接同一WIFI,WIFI檢測連接成功后,拔掉被測手機USB線(USB模式測試功率無任何意義,會充電))(備注:一般公司WIFI可能做了安全策略限制,導致iOS平台在公司WIFI下無法使用)
步驟4:選擇測試的游戲&應用
PC如圖:
Android平台,安裝模式下,手機屏幕左上角有實時性能數據顯示(Android手機請打開PerfDog懸浮窗管理權限,否則手機上不會顯示性能參數)