1:應(yīng)用啟動(dòng)時(shí)間 應(yīng)用啟動(dòng)時(shí),只加載啟動(dòng)相關(guān)的資源和必須在啟動(dòng)時(shí)加載的資源漩仙。
2:本地圖片加載方式 本地圖片加載常用方法有兩種: (1),[UIImage imageNamed:@""] 圖片多次使用時(shí)使用犹赖,需要使用此方式加入緩存 (2)队他,[[UIImage alloc] initWithContentsOfFile:@""] 圖片不常使用時(shí),不使用緩存
3:不要阻塞主線程 開發(fā)中除了UI處理外峻村,其它任務(wù)盡量放在后臺(tái)線程加載麸折。
4:UIView (1),如果你的View是透明的粘昨,需要設(shè)置opaque為YES垢啼。 (2),使用UITableView和UICollectionView的重用张肾,并緩存動(dòng)態(tài)Cell的高度芭析。 (3), 延遲加載不急需要的Views。 (4)吞瞪,盡量避免代碼裁剪圖片馁启,如果必須需在后臺(tái)線程處理。
5:緩存 緩存需要重復(fù)顯示的數(shù)據(jù)芍秆,像網(wǎng)絡(luò)請(qǐng)求惯疙、圖片。
6:避免對(duì)象創(chuàng)建時(shí)過多消耗資源 假設(shè)應(yīng)用中多次使用到日期處理妖啥,將保持日期對(duì)象全局唯一霉颠。
7:釋放對(duì)象 (1),ARC中創(chuàng)建對(duì)象過多時(shí)荆虱,內(nèi)存會(huì)持續(xù)升高蒿偎,在需要時(shí)添加自動(dòng)釋放池釋放不需要的資源俭缓。 (2),及時(shí)釋放自己開辟的內(nèi)存空間酥郭。
8:防止循環(huán)引用 (1)华坦,在頭文件中盡量避免import導(dǎo)入頭文件,使用@class 聲明類不从,在.m文件中#import惜姐。 (2),在設(shè)置代理/block中使用相應(yīng)的關(guān)鍵字引用對(duì)象椿息。
9:數(shù)據(jù)存儲(chǔ) 數(shù)據(jù)存儲(chǔ)大致分plist嘱支、對(duì)象歸檔抬探、sqlite。NSUserDefault適合存儲(chǔ)小量數(shù)據(jù),私密信息使用Keychain, sqlite適合大量數(shù)據(jù),歸檔性能較低,盡量避免使用向瓷。
10:內(nèi)存警告處理 當(dāng)系統(tǒng)發(fā)出內(nèi)存警告時(shí),釋放不必要的數(shù)據(jù)的三種方式僚饭。 AppDelegate中實(shí)現(xiàn)applicationDidReceiveMemoryWarning UIViewController 重寫didReceiveMemoryWarning 注冊(cè)通知:UIApplicationDidReceiveMemoryWarningNotification
11:性能檢測(cè) 靜態(tài)分析APP:菜單-Product-Analyze 可以定位未使用的變量润匙,內(nèi)存泄漏 分析APP每個(gè)操作占用時(shí)間: Instruments-Time profiler。 動(dòng)態(tài)分析內(nèi)存泄漏:Instruments-Leaks钻心。
推薦博客文章: