日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

安卓 App 性能專項測試之流暢度深度解析-上篇

 印度阿三17 2019-05-11

指標背景

流暢度,顧名思義是用戶感知使用App頁面時的流暢情況,“App卡不卡”,這是用戶最直接的感受。
但是要用量化之后的數(shù)據(jù)衡量流暢度,在Android平臺這邊并沒有直接有效的方式/手段去監(jiān)控。

幀率&刷新頻率

首先需要了解到兩個概念:

刷新頻率(Refresh Rate)

代表屏幕在一秒內(nèi)刷新操作的次數(shù),這取決于硬件的固定參數(shù),例如60HZ。

幀率(Frame Rate)

代表GPU在一秒內(nèi)繪制操作的幀數(shù),例如常見的24fps,60fps,單位是fps(每秒幀數(shù)),很多游戲里面也會有這個指標。

24fps&60fps

現(xiàn)在電影行業(yè)默認的規(guī)則幀率是需要24fps,除了一些極個別的電影超高幀率之外(如李安的比利林恩.中場戰(zhàn)事達到超高幀率120fps),辣么有的同學就問了:是不是幀率越高越好,這里可以給到你肯定的回答:是的!就像顯示器的分辨率一樣,之前認為1080p足夠了,現(xiàn)在用到了4K,5K之后才發(fā)現(xiàn)以前的真沒法看。當然支持高幀率也需要對應(yīng)的硬件設(shè)備,emm..話題跑偏了,回到Android流暢度上來,現(xiàn)在Android平臺App或者是游戲普遍需要達到60fps用戶肉眼才能感覺到“不卡”。咦?不是24fps嗎?那么問題來了,為什么電影只需要24fps就能是流暢的效果,而App/游戲需要達到60fps?

動態(tài)模糊

首先小伙伴們可以看下這張圖,設(shè)計功力較渣,大家見諒

第一部分為電影物體運動軌跡,不理解,沒關(guān)系,再來看下這張圖

wtf???并不是電影不高清,而且主角在激烈的戰(zhàn)斗?。。?!
怎么樣,相信聰明如你應(yīng)該懂了,電影每幀不僅會記錄當前時間點的信息,還會記錄物體的運行軌跡。所以我們看到是模糊的效果。
但是游戲/App的幀呢?請看下半部分,每幀只會記下當前時間點的信息,并不會記錄物體的運行軌跡,每一幀都是清晰的,經(jīng)過GPU渲染加載出來的。
所以動態(tài)模糊也是為什么電影只需要24fps的一個原因,那么除了動態(tài)模糊還有別的因素會影響的嗎?
有的!

幀間隔/垂直同步/Vsync

說到幀間隔這個名詞大家可能比較陌生,垂直同步相信很多玩游戲的小伙伴在游戲的設(shè)置菜單有見過,那么他是用來做什么的呢?
還是來看下面這張圖:

可以看到在電影播放的時候,每幀的間隔時間都是相等的,過度非常平滑。
而在游戲幀/App幀,可能有些場景幀間隔時間較大(比如人民群眾喜聞樂見的國民級手游王者榮耀在團戰(zhàn)的時候),有些場景間隔時間較小(頁面不復雜/簡單應(yīng)用場景),為什么會造成這個原因呢?
這得從App的渲染機制/原理講起,CPU負責將頁面的布局/元素進行計算將數(shù)據(jù)推給GPU進行處理,GPU負責進行柵格化(也就是將UI元素繪制到屏幕上),所以幀間隔時間跟頁面結(jié)構(gòu)復雜程度相關(guān),頁面結(jié)構(gòu)越復雜,CPU/GPU所需要的時間越多。
講到這里,可能有些同學馬上想到是不是可以有某種技術(shù)可以讓幀間隔的時間保持一致?沒錯,就是垂直同步!系統(tǒng)會每間隔一段時間發(fā)送一個Vsync同步信號,當接收到了Vsync就會刷FrameBuffer(簡單理解就是去刷新屏幕顯示),所以有了垂直同步可以解決掉幀間隔不同步的問題。但是事情往往不會這么簡單的,有了垂直同步就可以高枕無憂了嗎?并不會!

丟幀

雖然開啟了垂直同步能夠保證幀間隔時間相等,但是能夠保證每幀都能夠及時的渲染出來嗎?并不能,來看下面這張圖:

系統(tǒng)會每隔16ms去發(fā)送Vsync信號通知CPU/GPU可以開始渲染工作了,為什么是16ms?機智如你應(yīng)該能想到60fps的倒數(shù)就是16.67ms(省略后面的小數(shù)點)。如果要能夠達到60fps的話,那么就要求每一幀都應(yīng)該在16ms之內(nèi)繪制完畢,否則就出現(xiàn)了右邊圖里面的情況-丟幀!16ms之內(nèi)沒有完成該幀的繪制,那么就必須要等到下次系統(tǒng)的Vsync信號過來了,中間經(jīng)過的時間就是16ms*2(大致為34ms)。而且丟幀也是App卡頓的根本原因!?。?/p>

好了,關(guān)于流暢度的解析就先到這里,下篇再給大家講解怎么監(jiān)控指標以及怎么測試的問題。

來源:http://www./content-4-186851.html

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多