成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

【騰訊優(yōu)測干貨分享】安卓專項測試之 GPU 測試探索

sugarmo / 1173人閱讀

摘要:通過這兩天的調研,筆者將的測試方法簡單的分為兩類安卓官方提供的工具及方法廠商提供的工具及方法。其中監(jiān)測僅支持搭載高通處理器的設備,而其他功能可以在搭載任意處理器的手機上使用。

本文來自于Dev Club 開發(fā)者社區(qū),非經作者同意,請勿轉載,原文地址:http://dev.qq.com/topic/57c7f...

作者:章未哲——騰訊SNG質量部

背景

我們在安卓上進行性能測試時,如果想獲取CPU以及內存等常用性能指標,linux系統(tǒng)自身就提供了現(xiàn)成的方法,谷歌官方甚至公司內部也都提供了大量功能強大的分析工具。而相比之下,想要獲取GPU的相關指標則沒那么容易,甚至我們對GPU應該使用什么指標衡量都幾乎一無所知。這一方面是由于系統(tǒng)沒有提供相關接口與命令,另一方面似乎業(yè)界目前對于GPU的關注度不足,相關積累與沉淀較少,鑒于此,個人感覺GPU測試這一塊也可以作為終端專項后面需要關注及攻克的課題。

通過這兩天的調研,筆者將GPU的測試方法簡單的分為兩類:

安卓官方提供的工具及方法;

GPU廠商提供的工具及方法。下面將具體介紹這兩類測試分析方法。

一、安卓官方提供的工具

google或者百度“安卓GPU測試”等關鍵詞搜索出來的結果多半屬于這一類方法。這一類方法還有一個顯著的共同點:沒有提供GPU直接關鍵指標,而是通過逐幀計算界面繪制渲染的過程及消耗時間間接呈現(xiàn)GPU的占用。具體工具及使用方法如下:

1. GPU View Updates

開啟方式:設置-開發(fā)者選項-顯示GPU視圖更新。主要查看view的更新以及redraw的區(qū)域大小。這個工具比較簡單,不做具體介紹。

2. Show GPU Overdraw

開啟方式:設置-開發(fā)者選項-調試GPU過度繪制-顯示過度繪制區(qū)域。開啟后的效果如下圖:

過度繪制(overdraw)指的是某些組件在屏幕像素點上繪制次數(shù)超過一次,不同顏色代表含義如下:

無色:無過度繪制,即該像素點只繪制1次

藍色:1倍過度繪制,即該像素點繪制了2次

綠色:2倍過度繪制,即該像素點繪制了3次

淺紅:3倍過度繪制,即該像素點繪制了4次

暗紅:4倍過度繪制,即該像素點繪制了5次

在開發(fā)及測試的過程中,多倍過度繪制應該是需要特別注意并極力避免的。

3. Profile GPU Rendering

開啟方式:設置-開發(fā)者選項-GPU呈現(xiàn)模式分析。

里面有兩個選項:

在屏幕上顯示條形圖;

在 adb shell dumpsys gfxinfo中。

1、選擇第一項,效果如下:

手機上出現(xiàn)大量GPU繪制信息,每條柱狀信息代表一幀渲染時間,柱子越長代表這一幀的渲染時間越長,不同顏色代表每一幀渲染各個階段所占時長。為確保畫面流暢,系統(tǒng)每秒鐘需要渲染60幀(60fps),即平均每幀渲染時間為16ms,上圖中的綠色橫線即為16ms“警戒線”,超過這個警戒線的柱子代表該幀渲染時間過長,可能造成界面卡頓。

柱子不同顏色的組成代表了每一幀渲染各階段耗時,在4.x的系統(tǒng)中,只分了3個階段,而在5.x系統(tǒng)中細分成4個階段,而在6.0系統(tǒng)中更進一步細分為了9個階段,上圖是6.0系統(tǒng)下呈現(xiàn)的效果,而在4.x系統(tǒng)下的呈現(xiàn)效果如下圖所示:

下面介紹各系統(tǒng)下不同顏色代表的含義:

4.x:

藍色:代表繪制時間,即創(chuàng)建和更新display lists的時間

紅色:代表執(zhí)行時間,即系統(tǒng)進行2D渲染Display List的時間

橙色:代表處理時間,即CPU等待GPU完成渲染處理的時間

5.x:

新增紫色:代表渲染線程寫入資源所需時間

6.x:

變成9種顏色,將渲染過程中的幾大步驟進一步細分,可以通過Android Studio上的GPU Monitor可以看到各顏色含義更新如下(關于GPU Monitor下一小節(jié)會具體介紹):

Swap Buffers:對應原先Process(橙色),表示處理任務的時間,也可以說是CPU等待GPU完成任務的時間,線條越高,表示GPU做的事情越多;

Command Issue:對應原先Execute(紅色),表示執(zhí)行任務的時間,這部分主要是Android進行2D渲染顯示列表的時間,為了將內容繪制到屏幕上,Android需要使用Open GL ES的API接口來繪制顯示列表,紅色線條越高表示需要繪制的視圖更多;

Sync & Upload:表示的是準備當前界面上有待繪制的圖片所耗費的時間,為了減少該段區(qū)域的執(zhí)行時間,我們可以減少屏幕上的圖片數(shù)量或者是縮小圖片的大??;

Draw:對應原先Update(藍色),表示測量和繪制視圖列表所需要的時間,藍色線條越高表示每一幀需要更新很多視圖,或者View的onDraw方法中做了耗時操作;

Measure/Layout:表示布局的onMeasure與onLayout所花費的時間,一旦時間過長,就需要仔細檢查自己的布局是不是存在嚴重的性能問題;

Animation:表示計算執(zhí)行動畫所需要花費的時間,包含的動畫有ObjectAnimator,ViewPropertyAnimator,Transition等等。一旦這里的執(zhí)行時間過長,就需要檢查是不是使用了非官方的動畫工具或者是檢查動畫執(zhí)行的過程中是不是觸發(fā)了讀寫操作等等;

Input Handling:表示系統(tǒng)處理輸入事件所耗費的時間,粗略等于對事件處理方法所執(zhí)行的時間。一旦執(zhí)行時間過長,意味著在處理用戶的輸入事件的地方執(zhí)行了復雜的操作;

Misc Time/Vsync Delay:表示在主線程執(zhí)行了太多的任務,導致UI渲染跟不上vSync的信號而出現(xiàn)掉幀的情況;出現(xiàn)該線條的時候,可以在Log中看到這樣的日志: ?I/Choreographer(*): Skipped XXX frames! The application may be doing too much work on its main thread

關于這一部分的具體原理及詳細解釋可以參考Android性能優(yōu)化典范:

http://hukai.me/android-perfo...

http://hukai.me/android-perfo...

2、選擇第二項adb shell dumpsys gfxinfo,可以在終端中通過adb shell dumpsy gfxoinfo taskName命令獲取對應進程的幀渲染日志文件。

4. GPU Monitor

另外,在Android Studio 1.4之后的版本中集成了GPU Monitor,也可以查看每幀的渲染耗時。使用方法如下:

將手機連接電腦病開啟USB調試選項,打開Android Studio并點擊底部的“Android Monitor”,選擇待測的設備與進程,即可看到GPU Monitor的監(jiān)控結果。以6.0系統(tǒng)為例,可以看到,GPU Monitor中呈現(xiàn)的信息實際上與GPU呈現(xiàn)模式分析中在手機屏幕上顯示的柱狀圖是相同的。

GPU Monitor中展示的柱狀圖的顏色數(shù)量也是與系統(tǒng)版本有關的,若使用5.x系統(tǒng),GPU Monitor中渲染耗時展示如下:

二、GPU廠商提供的工具

上面提到的方法都是通過監(jiān)控幀渲染時間等手段間接反映GPU的狀態(tài),但是這些工具都不能滿足我們的需求。其實我們的需求很簡單:希望能夠直接獲得GPU占用率或者類似的指標,就如同top命令可以直接查看CPU占用率一樣,簡單快捷。但是,可能是由于相比CPU占用率,大部分開發(fā)者對GPU占用率并不是十分關心,不僅Linux/Android沒有提供GPU占用指標,就連Windows上也沒有提供原生的方法。Windows 平臺上有一些第三方工具能夠監(jiān)測顯卡狀態(tài),例如GPU-Z,暫時還不太清楚其工作原理及精確度。而在Linux/Android平臺上似乎還缺少比較權威的第三方監(jiān)測工具,Linux上可以通過Nvidia提供的nvidia-smi命令獲取GPU參數(shù),但是對其他GPU支持有限。在Android端,高通也提供了一些工具能夠監(jiān)測GPU的運行情況,但是也僅僅支持使用了高通CPU/GPU的移動設備。高通開發(fā)了兩個能夠監(jiān)測GPU的工具:

Adreno Profiler;

Trepn Profiler。

其中,前者是PC端的工具,功能強大,但是使用相對復雜,因此如果測試人員只需要簡單的測試數(shù)據(jù),沒有必要使用該工具。有興趣的同學可以在網(wǎng)上檢索資料,官方網(wǎng)站:https://developer.qualcomm.co...(復制鏈接在瀏覽器中打開)

本文主要介紹Trepn Profiler。Trepn Profiler是運行在終端上的性能監(jiān)測工具,在應用寶等各大應用市場均能免費下載。

官方網(wǎng)站:https://developer.qualcomm.co...(復制鏈接在瀏覽器中打開)

Trepn Profiler能夠實時監(jiān)測手機幾項主要性能指標,主要包括CPU、內存、GPU、網(wǎng)絡流量以及電量。其中GPU監(jiān)測僅支持搭載高通處理器的設備,而其他功能可以在搭載任意處理器的手機上使用。Trepn Profiler使用起來也十分簡單,下面主要介紹如何使用該工具監(jiān)測并提取GPU數(shù)據(jù)。

首先打開Trepn Profiler,可以看到以下界面:

各個入口對應了不同的監(jiān)測指標,以CPU監(jiān)測為主,而GPU監(jiān)測隱藏在“Performance Graph”中,點擊該按鈕并劃到最下方:

同CPU占用一樣,這里使用百分比表示了當前GPU的占用情況,剛好能夠滿足我們的需求,完美!但是,非高通機器在這里面是找不到GPU Frequency和GPU Load這兩個指標的。然而這僅僅提供了一個折線圖,如果想獲取更詳細信息,比如說原始數(shù)據(jù)以及各進程對應的GPU占用,沒關系,Trepn Profiler同樣能夠滿足。

回到首頁,點擊左上角選項按鈕,選擇“ADVANCED MODE”,進入以下界面:

選擇“Profile App”即可選擇監(jiān)測應用,在Setting中可以選擇監(jiān)測項目,采樣頻率等高級選項,同時還可以選擇開啟懸浮窗口實時監(jiān)測。我們選擇監(jiān)測QQ空間直播過程中的GPU占用情況,并開啟懸浮窗口實時監(jiān)測GPU狀態(tài),如下圖:

直播結束后,回到Trepn Profiler并選擇“Stop Profiling”,會提示是否保存測試結果,選擇“Save as .csv”,就可以保存測試過程中每次采樣獲得的原始數(shù)據(jù)。從手機中將csv格式的原始數(shù)據(jù)撈出來,可以用excel打開或者文本編輯器打開,可以根據(jù)后續(xù)需要自行選擇數(shù)據(jù)處理方式。

總結

? ?
本文記錄了一個小白探索安卓GPU測試方法的過程并總結了現(xiàn)有的幾個方法,但是筆者感覺本文總結的幾個方法還是存在許多不足,并且對GPU測試相關也仍然存在一些疑問,例如:是否有公認統(tǒng)一的GPU測試衡量指標?第三方(非GPU廠商)能否做到跨硬件平臺的、精確的GPU監(jiān)控與測試?
? ?
在專項測試關注的其他幾個領域里,我們都建立了較完善的監(jiān)控體系和工具集成,而相比之下,本文總結的GPU測試方法就顯得過于簡陋。隨著當前直播業(yè)務的火爆以及未來VR/AR技術的逐步普及,將來會有越來越多的非游戲類應用涉及到較大規(guī)模的GPU運算。而目前我們專項測試乃至整個業(yè)界似乎對于GPU監(jiān)控與測試的關注度還不夠,所以最后也希望我們專項團隊能夠盡早完善GPU的測試方法以及監(jiān)測體系。
? ?
筆者來自SNG質量部專項技術測試團隊,由于本人剛入職還處于學習階段,在性能/專項測試方面仍然資歷尚淺,之前也沒有接觸過GPU以及圖形學方面的知識,本文若有不準確不嚴謹不完善的地方,也請大家不吝賜教。


更多精彩內容歡迎關注騰訊優(yōu)測的微信公眾賬號:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://m.hztianpu.com/yun/8745.html

相關文章

  • 騰訊優(yōu)測優(yōu)分享干貨精選| Android雙卡雙待適配——隱藏在數(shù)據(jù)庫中的那些秘密

    摘要:雙卡數(shù)據(jù)庫適配流程根據(jù)系統(tǒng)數(shù)據(jù)內容來做適配開發(fā),找到區(qū)分雙卡的標識字段和字段對應的值。主要涉及的數(shù)據(jù)庫表有兩個短信彩信電話。需要更新中的數(shù)據(jù)中的字段值來標識卡槽。文騰訊優(yōu)測李艷超 摘要:android雙卡數(shù)據(jù)庫適配是常見的適配難題,騰訊優(yōu)測是app自動化適配測試平臺,提供APP兼容性適配測試,遠程真機租用等多維度的測試服務,為大家奉上優(yōu)分享-騰訊內部的移動研發(fā)測試干貨精選~關鍵詞:數(shù)據(jù)...

    singerye 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<