Profile GPU Rendering

更多關於Android渲染性能請點擊這裏

Profile GPU Rendering 可以查看具體是那些活動拖慢了你的應用,使你的頁面產生卡頓。

開啓

進入開發者模式 —> 打開 Profile GPU Rendering —> 選擇 On Screen As Bars

使用

此時 設備上會出現大量的顏色和標籤,針對每一項活動,這個工具都會在其頂部展示一個採樣圖形來展示性能信息

具體分爲三部分
底部 Navigation Performance
頂部 Notification Bar Performance
中間 Active App Performance

當然我們只關係我們的應用
每一個垂直欄目代表一幀的渲染,高的代表渲染時間更長,綠線代表16ms,它會根據整體欄目情況上下浮動,爲了達到60fps,就需要保證每一幀的垂直欄都位於綠線以下。每個超過這個線的欄目都會導致動畫卡頓

每一個條目包含了頂端相互堆疊的三個顏色,直接反映了Andorid渲染通道的比例,以及實際運行這一幀消耗的時間

藍色代表了繪製時間,或者說在java中具體花了多少時間來生成並更新顯示列表,視圖被渲染之前,他必須被轉換爲GPU可使用的格式,簡單講可能是幾個繪圖命令,但複雜起來,就可能在canvas對象裏嵌合自定義路徑,等他完成,由系統生成爲顯示列表,藍色記錄了所有需要更新的視圖完成這兩步所需要的時間,當你看見這個欄目變高時就說明 view 在onDraw功能裏包含了特別複雜的邏輯

紅色代表執行時間,這是Android的2D渲染執行顯示列表時消耗的時間,爲了繪製屏幕圖像,Android需要通過與OpenGL ES API互動來繪製顯示列表信息,這會將有效數據傳送至GPU,最終將像素顯示到屏幕上。

越是複雜的視圖,越需要複雜的命令讓OpenGl繪製。當紅色欄目升高時,這些複雜的視圖就是元兇。
重複上傳大量視圖進行重新繪製也會造成紅色欄目升高。

橘色代表處理時間,或者說是CPU告訴GPU它處理完一幀的渲染了,這個活動是一個阻塞call,因此CPU會等待GPU的信息,來感知他接收的指令,這個欄目越大,意味着你的GPU在處理大量的工作。

獲得能迴應用戶輸入的流暢動畫,關鍵在於保證這些垂直條目都在16ms以下,只要超過16ms,就會丟失一幀, 使用Profile GPU Rendering可以迅速獲知渲染通道有哪些問題,但是解決就困難多了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章