最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

干貨 | 誰懂這篇文,玩游戲還會(huì)卡頓?

2022-10-20 15:48 作者:愛測(cè)軟件測(cè)試  | 我要投稿

玩游戲的時(shí)候最怕的就是卡頓。排位賽的緊急關(guān)頭,明明馬上就能上一段位,卻因?yàn)榭D導(dǎo)致給對(duì)方送人頭。還把對(duì)手送上了王者。引起隊(duì)友罵聲一片。作為測(cè)試工程師的你,可以忍?


卡頓測(cè)試也是專項(xiàng)測(cè)試?yán)锏囊环N,更多精彩測(cè)試內(nèi)容,可下方關(guān)注公眾號(hào)

Android系統(tǒng)每隔16ms會(huì)發(fā)出VSYNC信號(hào)重繪我們的界面(Activity)。App需要在16ms內(nèi)完成下一次要刷新的界面的相關(guān)運(yùn)算,以便界面刷新更新,如果無法在16ms內(nèi)完成運(yùn)算,就會(huì)發(fā)生卡頓,影響用戶體驗(yàn)。 下面的這些內(nèi)容可能會(huì)造成卡頓:

  • 內(nèi)存問題:內(nèi)存抖動(dòng)、full gc

  • cpu:計(jì)算耗時(shí)

  • gpu:布局復(fù)雜、overdraw 就是執(zhí)行GC操作時(shí),需要暫停線程的任何操作,GC操作完成,其他操作才能繼續(xù),頻繁的GC會(huì)導(dǎo)致界面卡頓,頻繁GC有兩個(gè)原因:

  • 內(nèi)存抖動(dòng)(Memory Churn),創(chuàng)建大量的對(duì)象,在短時(shí)間內(nèi)馬上釋放。

  • 產(chǎn)生大量對(duì)象會(huì)占用Young Generation的內(nèi)存區(qū)域, 如果剩余空間不足,就會(huì)觸發(fā)GC。同時(shí),大量對(duì)象的疊加也會(huì)增加Heap的壓力,從而觸發(fā)更多的GC操作。 UI渲染由CPU和GPU分工完成,CPU負(fù)責(zé)布局元素的運(yùn)算(比如Measure, Layout)。GPU負(fù)責(zé)柵格化處理(將UI元素繪制到屏幕上)。 UI布局層次太深, 或者自定義控件的onDraw函數(shù)中存在復(fù)雜運(yùn)算, 就需要CPU負(fù)荷工作,從而影響整個(gè)繪制過程。 過度繪制會(huì)導(dǎo)致gpu負(fù)荷,每屏的每一幀,像素點(diǎn)應(yīng)該只被繪制一次,如果重復(fù)繪制像素點(diǎn),就是過度繪制。

Android可以查看過度繪制:“設(shè)置”→“開發(fā)者選項(xiàng)”→“調(diào)試GPU過度繪制(toggle GPU overdraw)”,打開后再訪問App會(huì)出現(xiàn)下圖:

此時(shí)界面可能會(huì)有五種顏色標(biāo)識(shí):

  • 原色:沒有overdraw

  • 藍(lán)色:1次overdraw

  • 綠色:2次overdraw

  • 粉色:3次overdraw

  • 紅色:4次及4次以上的overdraw 卡頓的關(guān)鍵因素是無法在16ms內(nèi)繪制一幀,sdk自帶的systrace工具可以分析每一幀的繪制情況,并且給出補(bǔ)救措施和建議。

需要安裝sdk,在sdk目錄下存在systrace.py:

python{sdk目錄}/platform-tools/systrace

注意:運(yùn)行此工具需要python2.7。 如果運(yùn)行中出現(xiàn)如下錯(cuò)誤,安裝對(duì)應(yīng)的依賴即可:

No module win32con pip2 install pypiwin32 No module six pip2 install six

首先連接一個(gè)Android設(shè)備:192.168.181.102:5555 在命令行輸入:

python systrace.py -e 192.168.181.102:5555

在設(shè)備上進(jìn)行操作在命令行:按下enter,完成錄制。此時(shí)會(huì)生成一份html報(bào)告,整個(gè)過程如下:

點(diǎn)擊生成的html報(bào)告:

參數(shù)解析:

1.幀點(diǎn):綠色表示16.6ms內(nèi),黃、紅色超過16.6ms 2.任務(wù)狀態(tài)灰:休眠;藍(lán)色:可運(yùn)行;綠色:運(yùn)行;橙色:不響應(yīng)信號(hào) 3.函數(shù)調(diào)用

在報(bào)告的頁面有快捷鍵操作:

  • w:放大

  • s:縮小

  • m:找到下一幀,顯示時(shí)間 如果一個(gè)幀的繪制時(shí)間超過0.7s,用戶會(huì)明顯感覺到卡頓,稱之為冰凍幀,比如上面紅色的幀點(diǎn)。如果幀的繪制時(shí)間剛好超過0.6ms,稱之為掉幀,比如上面黃色的幀點(diǎn),但部分掉幀影響不大,主要危險(xiǎn)來自于冰凍幀。

也可以用adb自帶的工具對(duì)幀進(jìn)行分析,但數(shù)據(jù)不如systrace精準(zhǔn):

adb -s devicesname shell dumpsys gfxinfo |less


干貨 | 誰懂這篇文,玩游戲還會(huì)卡頓?的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
台东市| 兖州市| 财经| 嘉善县| 五莲县| 桃园县| 康乐县| 博野县| 六枝特区| 防城港市| 霍邱县| 台北市| 平南县| 建宁县| 淮安市| 文水县| 石屏县| 湘乡市| 昌黎县| 永泰县| 红河县| 甘肃省| 布拖县| 阳泉市| 惠州市| 富川| 寿宁县| 会宁县| 屏南县| 九龙县| 房山区| 会昌县| 吉首市| 玉门市| 阜平县| 盱眙县| 海伦市| 海南省| 平山县| 道孚县| 仲巴县|