iOS 開發 - 改善APP的流暢度 (繪製股票行情),iosapp

來源:互聯網
上載者:User

iOS 開發 - 改善APP的流暢度 (繪製股票行情),iosapp

這幾天做了一個查看股票行情的app.

完成之後,當k線比較多的時候,app 對於捏合、拖動手勢的反應不太流暢,

主要原因是drawRect: 乾的活太多, 竟然需要40ms+, fps 自然不高

最後按照下面這些原則,進行調整修改,流暢度提高不少,大多數的繪製時間控制在了10ms左右

 

總結如下:

1. 盡量不要實現drawRect(每次調用該方法時,都要為backing store分配記憶體,非常消耗CPU)

2. 避免在drawRect:中進行耗費大量CPU資源的工作

2. 盡量少調用setNeedsDisplay:(視圖內容變化時才調用)

3. 考慮使用setNeedDisplayInRect: , 傳入drawRect:的rect越小,stoke,fill的時間越少, 即使drawRect:是根據視圖邊界繪製的)

4. 充分利用GPU的資源,直接設定layer的border,shadow,corner,gradient等屬性, GPU將會處理這些屬性(相反如果GPU緊張,CPU空閑,應由CPU處理,可在drawRect:中實現)

5. 如果繪製很多東西到一個視圖時,可嘗試開啟drawsAsynchronusly,那麼GPU會將視圖內容繪製到backing store中,但是開啟後,記憶體會增加,因此需要評估開啟前後效能的變化,謹慎使用。

 

 

代碼:https://github.com/beddup/TradeTraining/tree/master  

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.