對程序性能的優化歸納總結

1.使用複用機制

2.儘可能設置 View 爲不透明

3.避免臃腫的 XIB 文件

4.不要阻塞主線程

5.圖片尺寸匹配 UIImageView ,合理使用imageNamed 和 imageWithContentsOfFile

6.選擇合適的容器

7.啓用 GZIP 數據壓縮

8.View 的複用和懶加載機制

9、緩存 服務器的響應信息(response)。 圖片。 計算值。比如:UITableView 的 row heights。

10.關於圖形繪製

11.處理 Memory Warnings

在 AppDelegate 中實現 - [AppDelegate applicationDidReceiveMemoryWarning:] 代理方法。

在 UIViewController 中重載 didReceiveMemoryWarning 方法。

監聽 UIApplicationDidReceiveMemoryWarningNotification 通知。

12.複用高開銷的對象

13.減少離屏渲染(設置圓角和陰影的時候可以選用繪製的方法)

14.優化 UITableView 通過正確的設置 reuseIdentifier 來重用 Cell。

儘量減少不必要的透明 View。

儘量避免漸變效果、圖片拉伸和離屏渲染。

當不同的行的高度不一樣時,儘量緩存它們的高度值。

如果 Cell 展示的內容來自網絡,確保用異步加載的方式來獲取數據,並且緩存服務器的 response。

使用 shadowPath 來設置陰影效果。

儘量減少 subview 的數量,對於 subview 較多並且樣式多變的 Cell,可以考慮用異步繪製或重寫 drawRect。

儘量優化 - [UITableView tableView:cellForRowAtIndexPath:] 方法中的處理邏輯,如果確實要做一些處理,可以考慮做一次,緩存結果。

選擇合適的數據結構來承載數據,不同的數據結構對不同操作的開銷是存在差異的。

對於 rowHeight、sectionFooterHeight、sectionHeaderHeight 儘量使用常量。

15.選擇合適的數據存儲方式

在 iOS 中可以用來進行數據持有化的方案包括: NSUserDefaults。

只適合用來存小數據。 XML、JSON、Plist 等文件。JSON 和 XML 文件的差異在「選擇正確的數據格式」已經說過了。

使用 NSCoding 來存檔。NSCoding 同樣是對文件進行讀寫,所以它也會面臨必須加載整個文件才能繼續的問題。

使用 SQLite 數據庫。可以配合 FMDB 使用。數據的相對文件來說還是好處很多的,比如可以按需取數據、不用暴力查找等等。

使用 CoreData。也是數據庫技術,跟 SQLite 的性能差異比較小。但是 CoreData 是一個對象圖譜模型,顯得更面向對象;SQLite 就是常規的 DBMS。

16.減少應用啓動時間

快速啓動應用對於用戶來說可以留下很好的印象。尤其是第一次使用時。 保證應用快速啓動的指導原則: 儘量將啓動過程中的處理分拆成各個異步處理流,

比如:網絡請求、數據庫訪問、數據解析等等。 避免臃腫的 XIB 文件,因爲它們會在你的主線程中進行加載。重申:Storyboard 沒這個問題,放心使用。 注意:在測試程序啓動性能的時候,最好用與 Xcode 斷開連接的設備進行測試。因爲 watchdog 在使用 Xcode 進行調試的時候是不會啓動的。

17. 數據線程注意使用 Autorelease Pool (內存釋放池),例如NSOperation

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