Android效能最佳化系列——VSYNC

來源:互聯網
上載者:User

標籤:android   效能最佳化   

概念
  1. VSYNC,vertical synchronization
  2. Refresh Rate 螢幕一秒鐘重新整理的次數,由硬體決定,單位Hz,一般是60Hz
  3. Frame Rate GPU在一秒內繪製的幀數,單位fps(Frames per second)
具體解釋

GPU擷取圖形資料進行繪製,硬體將繪製好的資料呈現在螢幕上,為了使畫面在螢幕上流暢的顯示,需要保持Frame Rate 在60以上,也就是一次draw操作的時間不超過16.7ms。
Frame Rate與Refrash Rate不會總保持一致,如果GPU繪製速度大於螢幕重新整理速度,就會出現截斷現象,這是因為GPU使用一塊記憶體繪製幀資料,新的映像幀會從上到下一行一行覆蓋舊映像幀,當螢幕重新整理時並不知道緩衝區現在的資料狀態,這樣就抓取了GPU中還沒有繪製完的一幀資料。

解決方案是雙緩衝技術(double buffering),GPU首先將幀資料寫到back buffer中,然後把它拷貝到另一塊地區frame buffer。當繪製下一幀時,資料先寫到back buffer,螢幕重新整理時,只從frame buffer中擷取。如果GPU正在寫back buffer,這時候來了重新整理螢幕,VSYNC就會阻止這個拷貝過程。

VSYNC or vertical synchronization,will basically keep this copy operation from back buffer to frame buffer from happening if the screen is in the middle of refreshing from it.

當GPU的繪製速度小於螢幕重新整理速度,也就是FrameRate < RefreshRate,就會在螢幕上看到卡頓現象。所以要盡量保證一幀的繪製時間小於16ms。

Reference

Android Performance Patterns: Understanding VSYNC

Android效能最佳化系列——VSYNC

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.