啟動(dòng)耗時(shí)分析
-
WWDC(Optimizing App Launch - WWDC19) 啟動(dòng)耗時(shí)組成描述
Phases of App Launch啟動(dòng)階段.png -
頭條 啟動(dòng)耗時(shí)組成描述
t1(main前+t2(main后) -
美團(tuán) 啟動(dòng)耗時(shí)組成描述
冷啟動(dòng)時(shí)間定義t1(main前+t2(main后) -
yy啟動(dòng)優(yōu)化 啟動(dòng)耗時(shí)組成描述
yy啟動(dòng)優(yōu)化流程描述.png -
抖音啟動(dòng)優(yōu)化 啟動(dòng)耗時(shí)組成描述
抖音啟動(dòng)分析時(shí)間分段詳細(xì).png
文中提到的kCFRunLoopBeforeTimers褐墅,是CFRunLoopActivity的其中一個(gè)枚舉值
CFRunLoopActivity是使用 CFRunLoopObserverCreate創(chuàng)建觀察器時(shí),將選擇調(diào)度觀察器的RunLoop的各個(gè)階段。
官方文檔
后續(xù)上線务冕、防止劣化、統(tǒng)計(jì)準(zhǔn)確性的手段文章中也描述得很清晰混滔。
文章中優(yōu)化思路理解
- preMain
- 動(dòng)態(tài)庫的減少(減少加載動(dòng)態(tài)庫的時(shí)間)
- 相關(guān)基本概念
- 動(dòng)態(tài)庫(Build Setting->Linking->Mach-O Type會(huì)是dynamic library)
-
靜態(tài)庫(Build Setting->Linking->Mach-O Type會(huì)是static library)
Xcode Mach-o截圖.png
Xcode Mach-O類型.png
- 具體操作方案
- 減少不必要的動(dòng)態(tài)庫
- 動(dòng)態(tài)庫、弄成靜態(tài)庫
- 原理:運(yùn)行起來dyld再做動(dòng)態(tài)庫加載的時(shí)機(jī)坯屿、放到構(gòu)建打包時(shí)油湖,減少加載動(dòng)態(tài)庫的時(shí)間。
- 實(shí)操起來领跛,可能會(huì)有符號(hào)重復(fù)的問題(我沒有遇到)乏德。
- 有對(duì)應(yīng)的腳本、可以將動(dòng)態(tài)庫改成靜態(tài)庫吠昭,打成新的xcframework喊括。(本人相關(guān)調(diào)研文章綠洲iOS啟動(dòng)優(yōu)化理解、補(bǔ)充閱讀矢棚、實(shí)操筆記 2024-03-19)
- cocoapods相關(guān)配置(本人相關(guān)調(diào)研文章綠洲iOS啟動(dòng)優(yōu)化理解郑什、補(bǔ)充閱讀、實(shí)操筆記 2024-03-19)
- 相關(guān)基本概念
- load方法的減少蒲肋、靜態(tài)方法的減少
- load的調(diào)用時(shí)機(jī)是preMain的蘑拯。
- load內(nèi)的改成initialize的話,就變成懶加載了兜粘,到真正使用到這個(gè)類申窘,才調(diào)用intialize內(nèi)對(duì)類內(nèi)初始化。
- 動(dòng)態(tài)庫的減少(減少加載動(dòng)態(tài)庫的時(shí)間)
- Main后
- didFinishLaunch內(nèi)所做的內(nèi)容的減少
- 首屏渲染
參考文章
Optimizing App Launch - WWDC19 - Videos - Apple Developer
Category的本質(zhì)<二>load孔轴,initialize方法 - 簡(jiǎn)書 (jianshu.com)
【性能優(yōu)化】今日頭條iOS客戶端啟動(dòng)速度優(yōu)化 (qq.com)
美團(tuán)外賣iOS App冷啟動(dòng)治理 - 美團(tuán)技術(shù)團(tuán)隊(duì) (meituan.com)
iOS 啟動(dòng)優(yōu)化 + 監(jiān)控實(shí)踐 - 掘金 (juejin.cn)
抖音品質(zhì)建設(shè) - iOS啟動(dòng)優(yōu)化《實(shí)戰(zhàn)篇》 - 掘金 (juejin.cn)
iOS-底層原理 31:?jiǎn)?dòng)優(yōu)化之二進(jìn)制重排_(tái)ios二進(jìn)制重排原理-CSDN博客
iOS之性能優(yōu)化·優(yōu)化App的啟動(dòng)速度