国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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)遵守國家法律
隆回县| 酒泉市| 贵定县| 新宾| 葫芦岛市| 东光县| 西贡区| 双辽市| 张家口市| 新密市| 和平县| 八宿县| 马公市| 博客| 庆阳市| 陈巴尔虎旗| 万安县| 五莲县| 垦利县| 霞浦县| 集贤县| 扎鲁特旗| 镇雄县| 宁南县| 忻城县| 商城县| 肥西县| 德清县| 山西省| 股票| 潜江市| 石阡县| 利津县| 金阳县| 独山县| 临夏县| 互助| 曲沃县| 将乐县| 临安市| 邵阳市|