當前位置:
首頁 > 最新 > iOS優化沒錯我還是滑動優化

iOS優化沒錯我還是滑動優化

近期把滑動優化的一些經驗整理了一下,在公司做了一次技術分享,和我之前的文章有一小部分重疊。現摘要如下,希望大家不吝賜教,共同討論進步。

一.滑動優化的玄學

為什麼說是玄學呢,因為大部分情況下的APP,用不到這些優化的點,過早的優化是惡魔,當真正出現性能問題的時候,再考慮這些方面的優化。

1.多個透明元素重疊顯示的性能問題。

解決方案:合并成一張圖顯示

原理:CPU方面,減少了UIKit的創建消耗,GPU方面,避免了合成渲染產生的消耗。

AsyncDisplayKit(現在叫Texture),針對多個透明元素的重疊,預合并無點擊響應,不改變動畫的圖層。

Texture的保持流暢的原理:UIKit不是線程安全的,所以必須在主線程改動。Texture利用中間變數存儲改動,保證線程安全,在合適的機會將並發操作同步到主線程。

暫時不用Texture的原因:需要用Texture Node Container替換UIKit元素,成本較大。

2.靜態cell、多圖待載入的優化

解決方案:合并成一張圖顯示;

原理:提升I/O速度,一個大文件的讀取速度,通常比多個小文件要快。

3.展示適合界面尺寸圖片,不進行拉伸縮放。

解決方案:從伺服器拉取合適尺寸的圖片(例如七牛的服務就帶裁剪/壓縮參數);

原理:過大圖片對內存消耗巨大(圖片佔用內存 = 圖像高×圖像寬×像素位數);不符合UIImageView尺寸的圖片,進行重新縮減/放大尺寸的消耗是非常巨大的。

4.imageNamed和imageWithContentsOfFile

這個知道的人比較多,因為緩存圖片的消耗通常是肉眼可見的多。 常用的元素例如icon之類的,採用imageNamed:,系統會有緩存。 如果是較大或者不常用的圖片資源,採用imageWithContentsOfFile:。

5.減少autolayout的使用

解決方案:頁面元素多的時候,減少autolayout布局,採用frame。

原理:元素多時,autolayout的消耗非常驚人(http://pilky.me/36/) ,之前看過搜狗的iOS分享,搜狗輸入法鍵盤彈出狂卡即是此原因;

6.獲取文件大小

解決方案:不要使用NSFileManager,用C的stat來獲取文件信息。

實例:獲取一個目錄下所有文件大小,進行多次遞歸計算,stat幾乎瞬間完成,NSFileManager耗時較長。

7.NSDateFormatter產生較大消耗

解決方案:.緩存NSDateFormatter結果,不多次創建,及時釋放。

做過類似日曆的同學應該都懂

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 輕芒 的精彩文章:

對症下藥——六種連衣裙的選鞋秘籍!
生活要與花草相伴,就算沒庭院也沒陽台!
米兔積木機器人新品發布:最強陸戰軍團,太炫酷了
這對小情侶想把那個沒穿衣服的胖子P掉,結果……虐心啊
女子沒穿裙子躺沙灘,結果……

TAG:輕芒 |

您可能感興趣

黑鯊遊戲手機系統更新 優化觸摸屏超慢速滑動效果
總是滑動,點擊iPhone怕損壞手機,會不會呢??
越獄插件:調整iPhone X後台工作方式,上滑動就能關閉APP!
滑動玻璃鷗翼門 Giugiaro新概念車帥到沒朋友
雙面「V」形滑動升降攝像頭?真心被OPPO這項新專利嚇到了
為什麼WP的軟體很少滑動返回?
雙面「V」形滑動升降攝像頭?真心被OPPO這項新專利嚇到了!
越獄插件:讓iPhone X也能滑動鎖屏或待機!
網傳OPPO Find X滑動式鏡頭專利曝光,真的很有料
某些iOS應用會追蹤用戶的點擊或者滑動
非摺疊,非滑動!LG或將推出滾動屏設備
行業人士一語擊中滑動鏡頭手機要害,vivo、OPPO、小米、榮耀你們認可嗎?
黑鯊遊戲手機即將獲更新:優化觸摸屏超慢速滑動效果
會投影的智能手錶LumiWatch來了,可在手臂自由地滑動並控制其中的應用
iPhone X滑動式外接鏡頭,可快速的進行鏡頭更換!
OPPO FindX真機亮相:曲面全景屏+滑動攝像頭,顏值完美了!
新型解壓玩具,仿皂莢外形,磁力吸附,滾動彈撥旋轉滑動1秒變換
能盤上癮的玩物,姿勢多變,滾動彈撥旋轉滑動,實在停不下來
一加7有什麼新特性?劉作虎:滑動效果堪比iPad Pro
PPT都3D了,你還不知道什麼是平滑動畫?