99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用GPU渲染模式分析工具進(jìn)行分析

jf_78858299 ? 來源:北洋洋洋 ? 作者:北洋 ? 2023-02-09 16:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

  • 每個(gè)豎條都是一次VSync的時(shí)間16.6ms,如果豎條寬度變寬且透明則代表超出16.6ms繪制的幀
  • 每個(gè)Vsync信號(hào)來臨前都會(huì)做工作(Choreographer中的postFrameCallback函數(shù)),按照順序依次處理: 「INPUT 輸入處理」 , 「Animation動(dòng)畫處理」 ,「Traversal 最終會(huì)調(diào)用到perfor的measure,layout,draw方法」
  • 每個(gè)豎條中的不同顏色代表的上面每個(gè)步驟的處理時(shí)間

顏色區(qū)分

圖片

image.png

從下到上說明

INPUT 輸入處理

表示應(yīng)用執(zhí)行輸入事件回調(diào)中的代碼所花的時(shí)間。如果此區(qū)段很大,表示應(yīng)用花太多時(shí)間處理用戶輸入。不妨考慮將此類處理任務(wù)分流到其他線程。

建議:

其實(shí)就是處理輸入事件開始到結(jié)束的時(shí)間,如果豎條中此顏色高度過高代表輸入事件應(yīng)放到其他線程去做

Animation動(dòng)畫處理

表示評(píng)估運(yùn)行 「該幀的所有動(dòng)畫程序所花的時(shí)間」 。如果此區(qū)段很大,表示您的應(yīng)用可能在使用性能欠佳的自定義動(dòng)畫程序,或因更新屬性而導(dǎo)致一些意料之外的工作。

建議:

該幀內(nèi)運(yùn)行的動(dòng)畫比較多

Measure,Layhout

表示在視圖層次結(jié)構(gòu)中 onLayout 和 onMeasure回調(diào)上所花的時(shí)間。大區(qū)段表示處理視圖層次結(jié)構(gòu)需要很長(zhǎng)時(shí)間。

Measure用來確定View的寬高,當(dāng)View為ViewGroup的時(shí)候還需要遍歷子View,Layout在進(jìn)行遍歷擺放到正確的位置,當(dāng)View嵌套層級(jí)變多或者自定義View時(shí)復(fù)寫這兩個(gè)方法時(shí)也要考慮這種情況。

Draw

表示用于創(chuàng)建和更新視圖顯示列表的時(shí)間。如果豎條的此部分很高,表明可能有許多自定義視圖繪制,或 onDraw 方法執(zhí)行的工作很多。

上篇文章 Vsync信號(hào)和View繪制流程的關(guān)系中說到:draw方法其實(shí)并沒有進(jìn)行真正的繪制,而是把繪制的內(nèi)容放入到了DisplayList中接著同步到RenderThread中。放入到DisplayList的命令其實(shí)就是對(duì)canvas的操作轉(zhuǎn)換而來的,該列表命令過多有兩種情況:1.可用的渲染數(shù)據(jù)失效。2.canvas的操作過多

將對(duì)Canvas的操作轉(zhuǎn)換成Bitmap同步至GPU

表示將位圖信息上傳到 GPU 所花的時(shí)間。大區(qū)段表示應(yīng)用花費(fèi)大量的時(shí)間加載大量圖形。

draw方法調(diào)用完成后,會(huì)進(jìn)行釋放這塊內(nèi)存區(qū)域并交給RenderThread去處理渲染數(shù)據(jù)。(釋放的操作在native層對(duì)應(yīng)的處理是把這塊內(nèi)存區(qū)域變成一個(gè)Bitmap交由RenderThread去渲染) 「幀的所有資源都必須位于 GPU 內(nèi)存中才能用來繪制幀」 ,因此需要上傳到GPU中緩存起來

要減小該值,可以采用以下技巧:

  • 確保位圖的分辨率不會(huì)比位圖的顯示尺寸大很多。應(yīng)避免將 1024x1024 的圖片顯示為 48x48 的圖片。
  • 利用 prepareToDraw() 在下一個(gè)同步階段之前異步預(yù)上傳位圖。

RenderThread進(jìn)行調(diào)用Opengl渲染

這個(gè)顯示列表就是DisplayList

表示 Android 的 2D 渲染程序向 OpenGL 發(fā)出繪制和重新繪制顯示列表的命令所花的時(shí)間。此豎條的高度與執(zhí)行每個(gè)顯示列表所花的時(shí)間的總和成正比。顯示列表越多,紅色豎條就越高。

發(fā)出將顯示列表繪制到屏幕上所需的全部命令所需的時(shí)間

RenderThread會(huì)執(zhí)行一個(gè)DrawFrameTask的Task,里面核心方法是DrawFrame。通過OpenGl和一些庫(kù)將渲染數(shù)據(jù)通知給SurefaceFliger去做圖層合成。將渲染數(shù)據(jù)放入到阻塞隊(duì)列中。

這個(gè)和上面的要區(qū)分開,官方文檔我沒看太明白,我以我的理解闡述一下吧:

繪制的耗時(shí)不代表對(duì)canvas的操作復(fù)雜,可能僅僅是邏輯處理,但是調(diào)用OpenGl渲染反映的是對(duì)canvas的操作復(fù)雜,所以一個(gè)是說OnDraw復(fù)雜,一個(gè)是說對(duì)canvas操作的復(fù)雜,在加上其實(shí)Android會(huì)進(jìn)行緩存。

在某些情況下,滾動(dòng)、轉(zhuǎn)換或動(dòng)畫會(huì)要求系統(tǒng)重新發(fā)送顯示列表,但不必實(shí)際重新構(gòu)建它(即重新捕獲繪制命令)。因此,您可能會(huì)看到“發(fā)出命令”條較高,但“繪制命令”條并不高。

交換緩沖區(qū)

表示 CPU 等待 GPU 完成其工作的時(shí)間。如果此豎條升高,表示應(yīng)用在 GPU 上執(zhí)行太多工作。

當(dāng) Android 將其所有顯示列表提交給 GPU 后,系統(tǒng)會(huì)發(fā)出最后一條命令,告訴圖形驅(qū)動(dòng)程序它已完成當(dāng)前幀的處理。此時(shí),驅(qū)動(dòng)程序即可將更新后的圖像顯示到屏幕上。

GPU提交數(shù)據(jù)給SuraceFliger讓其顯示,接著CPU在吧數(shù)據(jù)給到GPU進(jìn)行處理,這個(gè)區(qū)間就是CPU給到GPU的時(shí)間

最后給出官方的解析:

如果 CPU 發(fā)出命令的速度快于 GPU 處理命令的速度,這兩個(gè)處理器之間的通信隊(duì)列就會(huì)被占滿。出現(xiàn)這種情況時(shí),CPU 會(huì)阻塞并等待,直到隊(duì)列中有位置來放置下一個(gè)命令。這種隊(duì)列占滿狀態(tài)通常出現(xiàn)在“交換緩沖區(qū)”階段,因?yàn)榇藭r(shí)已提交了整個(gè)幀的命令。緩解此問題的關(guān)鍵是降低 GPU 工作的復(fù)雜度

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    28

    文章

    4930

    瀏覽量

    130990
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4378

    瀏覽量

    64609
  • 渲染
    +關(guān)注

    關(guān)注

    0

    文章

    75

    瀏覽量

    11146
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    鴻蒙開發(fā)-DevEco Studio Profiler工具進(jìn)行幀率分析

    Frame Profiler概述 DevEco Studio內(nèi)置Profiler分析調(diào)優(yōu)工具,其中Frame分析調(diào)優(yōu)功能,用于錄制GPU數(shù)據(jù)信息,錄制完成展開之后的子泳道對(duì)應(yīng)錄制過程中
    發(fā)表于 01-16 19:34

    賽昉科技VisionFiv2上的GPU渲染測(cè)試,平均60幀每秒,非常絲滑

    gpu渲染
    xusiwei1236
    發(fā)布于 :2023年12月24日 21:23:11

    使用Trepn Profiler工具分析Dragonboard410c的功耗和性能

    性能圖可以通過圖表顯示,cpu使用情況監(jiān)控配置則可以通過列表顯示等,所有配置都可以通過懸浮疊加顯示。除了這預(yù)設(shè)的六個(gè)配置,還可以進(jìn)入高級(jí)模式高級(jí)模式中,可以對(duì)系統(tǒng)性能進(jìn)行分析監(jiān)控,也可
    發(fā)表于 09-25 16:09

    基于OpenHarmony的Graphic標(biāo)準(zhǔn)子系統(tǒng)能力分析

        說明:GPU渲染時(shí),獲取buffer沒有經(jīng)過render service server,而是在client端用skia完成,在用egl做完顯示窗口的初始化動(dòng)作后,開始繪制圖像?! ≡创a分析  啟動(dòng)
    發(fā)表于 03-18 13:45

    基于磁貼的GPU架構(gòu)優(yōu)缺點(diǎn)

    本指南介紹了基于磁貼的GPU架構(gòu)的優(yōu)缺點(diǎn)。它還將ARM馬里基于瓷磚的GPU架構(gòu)設(shè)計(jì)與臺(tái)式PC或控制臺(tái)中常見的更傳統(tǒng)的即時(shí)模式GPU進(jìn)行了比較
    發(fā)表于 08-02 12:54

    Mali GPU性能分析工具

    本文檔描述了馬里GPU性能分析工具2.2版中的已知勘誤表。 這是一個(gè)貫穿整個(gè)產(chǎn)品生命周期的工作文檔,因此,隨著新信息的發(fā)現(xiàn),其內(nèi)容可能會(huì)被修改。 本文中包含的信息是ARM有限公司的財(cái)產(chǎn),對(duì)錯(cuò)誤或遺漏
    發(fā)表于 09-05 07:08

    什么是強(qiáng)制gpu渲染_強(qiáng)制渲染gpu有什么用

    本文主要介紹了gpu的定義、gpu工作原理、gpu功能作用及手機(jī)的強(qiáng)制進(jìn)行GPU渲染的詳細(xì)解釋,
    發(fā)表于 01-05 17:13 ?8178次閱讀

    手機(jī)要不要強(qiáng)制gpu渲染_強(qiáng)制gpu渲染能省電嗎_長(zhǎng)期開著強(qiáng)制gpu渲染影響及利弊分析

    強(qiáng)制進(jìn)行GPU渲染會(huì)充分利用手機(jī)的GPU,提高手機(jī)運(yùn)行以及一些應(yīng)用運(yùn)行的流暢度,但是也是提高手機(jī)的功耗。因此我們?cè)跊]有一些特殊需求(如:玩游戲、看電影等)的時(shí)候,建議還是謹(jǐn)慎選擇,當(dāng)然
    發(fā)表于 01-08 09:54 ?5.8w次閱讀

    GPU原理 GPU渲染流程

    GPU渲染流水線,是硬件真正體現(xiàn)渲染概念的操作過程,也是最終將圖元畫到2D屏幕上的階段。GPU管線涵蓋了渲染流程的幾何階段和光柵化階段,但對(duì)
    發(fā)表于 04-27 11:33 ?9812次閱讀
    <b class='flag-5'>GPU</b>原理 <b class='flag-5'>GPU</b><b class='flag-5'>渲染</b>流程

    GPU渲染過程的幾個(gè)階段

    GPU渲染流水線的主要任務(wù)是完成3D模型到圖像的渲染工作。常用的圖形學(xué)API編程模型中的渲染過程被分為幾個(gè)可以并行處理的階段,分別由GPU
    的頭像 發(fā)表于 02-02 11:38 ?9708次閱讀
    <b class='flag-5'>GPU</b><b class='flag-5'>渲染</b>過程的幾個(gè)階段

    一文詳解CPU渲染GPU渲染之間的優(yōu)劣

    CPU 渲染利用計(jì)算機(jī)的 CPU 來執(zhí)行場(chǎng)景并將其渲染到接近完美。這也是執(zhí)行渲染的更傳統(tǒng)方式。然而,隨著 GPU 的出現(xiàn),基于 GPU
    的頭像 發(fā)表于 03-08 14:50 ?3144次閱讀

    CPU渲染GPU渲染優(yōu)劣分析

    使用計(jì)算機(jī)進(jìn)行渲染時(shí),有兩種流行的系統(tǒng):基于中央處理單元(CPU)或基于圖形處理單元(GPU)。CPU渲染利用計(jì)算機(jī)的CPU來執(zhí)行場(chǎng)景并將其渲染
    的頭像 發(fā)表于 05-23 08:27 ?1214次閱讀
    CPU<b class='flag-5'>渲染</b>和<b class='flag-5'>GPU</b><b class='flag-5'>渲染</b>優(yōu)劣<b class='flag-5'>分析</b>

    電動(dòng)工具的失效模式分析

    常見的失效模式分析
    發(fā)表于 12-30 14:13 ?0次下載

    GPU渲染才是大勢(shì)所趨?CPU渲染GPU渲染的現(xiàn)狀與未來

    在3D建模和渲染領(lǐng)域,隨著技術(shù)的發(fā)展,CPU渲染GPU渲染這兩種方法逐漸呈現(xiàn)出各自獨(dú)特的優(yōu)勢(shì),并且在不同的應(yīng)用場(chǎng)景中各有側(cè)重。盡管當(dāng)前我們處在一個(gè)CPU
    的頭像 發(fā)表于 02-06 11:04 ?623次閱讀
    <b class='flag-5'>GPU</b><b class='flag-5'>渲染</b>才是大勢(shì)所趨?CPU<b class='flag-5'>渲染</b>與<b class='flag-5'>GPU</b><b class='flag-5'>渲染</b>的現(xiàn)狀與未來

    CPU渲染GPU渲染、XPU渲染詳細(xì)對(duì)比:哪個(gè)渲染最快,哪個(gè)效果最好?

    動(dòng)畫渲染動(dòng)畫3D渲染技術(shù)需要應(yīng)對(duì)復(fù)雜的計(jì)算任務(wù)和精細(xì)的圖像處理,作為渲染技術(shù)人員,選擇合適的渲染模式,會(huì)直接影響制作效率和成品質(zhì)量。在主流的
    的頭像 發(fā)表于 04-15 09:28 ?400次閱讀
    CPU<b class='flag-5'>渲染</b>、<b class='flag-5'>GPU</b><b class='flag-5'>渲染</b>、XPU<b class='flag-5'>渲染</b>詳細(xì)對(duì)比:哪個(gè)<b class='flag-5'>渲染</b>最快,哪個(gè)效果最好?