亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

一文讀懂直播卡頓優(yōu)化那些事兒 直播卡頓怎么解決( 二 )

  • 動(dòng)畫處理:animator 動(dòng)畫執(zhí)行和渲染;
  • view 處理:主要是 view 相關(guān)的遍歷和三大流程;
  • measure、layout、draw:view 三大流程的執(zhí)行;
  • DisplayList 更新:view 硬件加速后的 draw op;
  • OpenGL 指令轉(zhuǎn)換:繪制指令轉(zhuǎn)換為 OpenGL 指令;
  • 指令 buffer 交換:OpenGL 的指令交換到 GPU 內(nèi)部執(zhí)行;
  • GPU 處理:GPU 對(duì)數(shù)據(jù)的處理過程;
  • layer 合成:surface buffer 合成屏幕顯示 buffer 的流程;
  • 光柵化:將矢量圖轉(zhuǎn)換為位圖;
  • Display:顯示控制;
  • buffer 切換:切換屏幕顯示的幀 buffer;
  • Google 將這個(gè)過程劃分為:其他時(shí)間/VSync 延遲、輸入處理、動(dòng)畫、測(cè)量/布局、繪制、同步和上傳、命令問題、交換緩沖區(qū) 。也就是我們常用的 GPU 嚴(yán)格模式,其實(shí)道理是一樣的 。到這里,我們也就回答出來了第二個(gè)問題:16ms 內(nèi)都需要完成什么?
    準(zhǔn)確地說,這里仍可以進(jìn)一步細(xì)化:16ms 內(nèi)完成 APP 側(cè)數(shù)據(jù)的生產(chǎn);16ms 內(nèi)完成 sf layer 的合成
    View 的視覺效果正是通過這一整條復(fù)雜的鏈路一步步展示出來的,有了這個(gè)前提,那就可以得出一個(gè)結(jié)論:上述任意鏈路發(fā)生卡頓,均會(huì)造成卡頓
    2.3 生產(chǎn)者和消費(fèi)者我們?cè)倩氐?Vsync 的話題,消費(fèi) Vsync 的雙方分別是 App 和 sf,其中 App 代表的是生產(chǎn)者,sf 代表的是消費(fèi)者,兩者交付的中間產(chǎn)物則是 surface buffer 。
    再具體一點(diǎn),生產(chǎn)者大致可以分為兩類,一類是以 window 為代表的頁(yè)面,也就是我們平時(shí)所看到的 view 樹這一套;另一類是以視頻流為代表的可以直接和 surface 完成數(shù)據(jù)交換的來源,比如相機(jī)預(yù)覽等 。
    對(duì)于一般的生產(chǎn)者和消費(fèi)者模式,我們知道會(huì)存在相互阻塞的問題 。比如生產(chǎn)者速度快但是消費(fèi)者速度慢,亦或是生產(chǎn)者速度慢消費(fèi)者速度快,都會(huì)導(dǎo)致整體速度慢且造成資源浪費(fèi) 。所以 Vsync 的協(xié)同以及雙緩沖甚至三緩沖的作用就體現(xiàn)出來了 。
    思考一個(gè)問題:是否緩沖的個(gè)數(shù)越多越好?過多的緩沖會(huì)造成什么問題?

    答案是會(huì)造成另一個(gè)嚴(yán)重的問題:lag,響應(yīng)延遲
    這里結(jié)合 view 的一生,我們可以把兩個(gè)流程合在一起,讓我們的視角再高一層:
    2.4 機(jī)制上的保護(hù)這里我們來回答第三個(gè)問題,從系統(tǒng)的渲染架構(gòu)上來說,機(jī)制上的保護(hù)主要有幾方面:
    1. Vsync 機(jī)制的協(xié)同;
    2. 多緩沖設(shè)計(jì);
    3. surface 的提供;
    4. 同步屏障的保護(hù);
    5. 硬件繪制的支持;
    6. 渲染線程的支持;
    7. GPU 合成加速;
    這些機(jī)制上的保護(hù)在系統(tǒng)層面最大程度地保障了 App 體驗(yàn)的流暢性,但是并不能幫我們徹底解決卡頓 。為了提供更加流暢的體驗(yàn),一方面,我們可以加強(qiáng)系統(tǒng)的機(jī)制保護(hù),比如 FWatchDog;另一方面,需要我們從 App 的角度入手,治理應(yīng)用內(nèi)的卡頓問題 。
    2.5 再看卡頓的成因經(jīng)過上面的討論,我們得出一個(gè)卡頓分析的核心理論支撐:渲染機(jī)制中的任何流轉(zhuǎn)過程發(fā)生異常,均會(huì)造成卡頓 。
    那么接下來,我們逐個(gè)分析,看看都會(huì)有哪些原因可能造成卡頓 。
    2.5.1 渲染流程
    1. Vsync 調(diào)度:這個(gè)是起始點(diǎn),但是調(diào)度的過程會(huì)經(jīng)過線程切換以及一些委派的邏輯,有可能造成卡頓,但是一般可能性比較小,我們也基本無(wú)法介入;


      以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請(qǐng)您及時(shí)就醫(yī)或請(qǐng)專業(yè)人士給予相關(guān)指導(dǎo)!

      「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對(duì)您有所幫助: