iOS 開發(fā)中 APP 性能優(yōu)化相關(guān)記錄(一)

在 iOS 開發(fā)中, 我們?yōu)榱烁脩粢粋€(gè)很好的使用感受, 一般會(huì)盡可能的使 APP 的操作流程一些, 啟動(dòng)起訴快一些, 這也是 iPhone 中的應(yīng)用應(yīng)該具有的特征. 本文也是自己在平時(shí)開發(fā)過(guò)程中記錄的一些優(yōu)化記錄與心得

1. 盡可能不要阻塞主線程

我們知道, 在 iOS 中,UIKit 的操作一般都是在主線程中進(jìn)行的, 所以一旦一旦主線程被阻塞了, 響應(yīng)的 UI 可能就沒(méi)有辦法及時(shí)的刷新和響應(yīng)事件, 這就會(huì)給使用者一種很卡頓的現(xiàn)象. 一般這類阻塞主線程的操作有對(duì)數(shù)據(jù)庫(kù)的操作, 對(duì)文件的讀寫, 網(wǎng)絡(luò)獲取數(shù)據(jù)等, 所以我們盡可能的把這類操作放到子線程中去, 當(dāng)完成的時(shí)候再回到主線程刷新 UI 或者進(jìn)行相關(guān)操作, 以保證主線程不被阻塞, 給用戶一個(gè)良好的體驗(yàn).

2. 巧用 instruments

instruments 是在 iOS 開發(fā)中最 APP 性能監(jiān)測(cè)的一個(gè)利器, 在需要監(jiān)測(cè)性能的時(shí)候應(yīng)該優(yōu)先考慮使用它, 而不是去自己想象這問(wèn)題可能出在了哪里. 比如需要查看APP 中哪些部分最耗時(shí)的時(shí)候, 可以使用 Time Profiler 工具, 需要查看APP 內(nèi)存占用情況的時(shí)候, 可以使用 Leaks 工具. 關(guān)于 instruments 的更過(guò)相關(guān)知識(shí), 網(wǎng)上也有很多的資料.

3. 多使用 cache (緩存)

在開發(fā)中, 為了給用戶一個(gè)好的體驗(yàn), 一般都會(huì)使用緩存, 例如圖片數(shù)據(jù)能用 SDWebImage 這個(gè)第三方庫(kù)來(lái)進(jìn)行緩存. 基本思路是當(dāng) UI 需要顯示圖片的時(shí)候,首先去內(nèi)存中查看是否有緩存數(shù)據(jù), 如果有直接拿來(lái)用, 如果沒(méi)有, 再網(wǎng)絡(luò)獲取數(shù)據(jù), 并把最新的數(shù)據(jù)緩存在內(nèi)存中去, 方便下次使用.

4. 懶加載 view

在使用 UITableView 的時(shí)候, 盡可能的不要在 cell 上嵌套太多的 view, 這些會(huì)影響頁(yè)面滑動(dòng)的流暢度, 而且越多的 view 就會(huì)花費(fèi)越多的內(nèi)存. 如果有太多的 view, 影響了頁(yè)面滑動(dòng)的流暢度, 那么就可以考慮使用懶加載 view, 即不要一次性創(chuàng)建太多的 view, 有一些 view 到用的時(shí)候才去創(chuàng)建, 會(huì)更好

5. 盡可能的減少 APP 剛剛啟動(dòng)時(shí)的任務(wù)

在 APP 啟動(dòng)的時(shí)候, 應(yīng)該是盡可能快的把首頁(yè)展示給用戶, 以減少用戶的等待時(shí)間

今天寫記錄這么多, 下次繼續(xù)更新

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容