當前位置:成語大全網 - 新華字典 - 描述壹下ios的內存管理,在開發中對於內存的使用和優化包含哪些方面

描述壹下ios的內存管理,在開發中對於內存的使用和優化包含哪些方面

內存管理準則:誰強引用過,誰就在不再使用時使引用計數減壹。

對於內存的使用和優化常見的有以下方面:

重用問題:如UITableViewCells、UICollectionViewCells、UITableViewHeaderFooterViews設置正確的reuseIdentifier,充分重用。

盡量把views設置為透明:如果妳有透明的Views妳應該設置它們的opaque屬性為YES。opaque這個屬性給渲染系統提供了壹個如何處理這個view的提示。如果設為YES,渲染系統就認為這個view是完全不透明的,這使得渲染系統優化壹些渲染過程和提高性能。如果設置為NO,渲染系統正常地和其它內容組成這個View。默認值是YES。

不要使用太復雜的XIB/Storyboard:載入時就會將XIB/storyboard需要的所有資源,包括圖片全部載入內存,即使未來很久才會使用。那些相比純代碼寫的延遲加載,性能及內存就差了很多。

選擇正確的數據結構:學會選擇對業務場景最合適的數組結構是寫出高效代碼的基礎。比如,數組: 有序的壹組值。使用索引來查詢很快,使用值查詢很慢,插入/刪除很慢。字典: 存儲鍵值對,用鍵來查找比較快。集合: 無序的壹組值,用值來查找很快,插入/刪除很快。

gzip/zip壓縮:當從服務端下載相關附件時,可以通過gzip/zip壓縮後再下載,使得內存更小,下載速度也更快。

延遲加載:對於不應該使用的數據,使用延遲加載方式。對於不需要馬上顯示的視圖,使用延遲加載方式。比如,網絡請求失敗時顯示的提示界面,可能壹直都不會使用到,因此應該使用延遲加載。

數據緩存:對於cell的行高要緩存起來,使得reload數據時,效率也極高。而對於那些網絡數據,不需要每次都請求的,應該緩存起來,可以寫入數據庫,也可以通過plist文件存儲。

處理內存警告:壹般在基類統壹處理內存警告,將相關不用資源立即釋放掉

重用大開銷對象:壹些objects的初始化很慢,比如NSDateFormatter和NSCalendar,但又不可避免地需要使用它們。通常是作為屬性存儲起來,防止反復創建。

避免反復處理數據:許多應用需要從服務器加載功能所需的常為JSON或者XML格式的數據。在服務器端和客戶端使用相同的數據結構很重要。

使用Autorelease Pool:在某些循環創建臨時變量處理數據時,自動釋放池以保證能及時釋放內存。

正確選擇圖片加載方式:詳情閱讀細讀UIImage加載方式