這集由波肥與喬喬聊聊:
為什麼要加速 App Launch Time?
什麼時候做?
以及怎麼做?
庫存已久的題目一次補完
{ 完整節目筆記 https://weakself.dev/episodes/25) }
公司有在賺錢的時候
Pre-main: Loading (MachO + dylib) / Rebase & Binding / ObjC Setup / Initializer
Main: App 的入口
Post-main
Pre-main 提到的笑話)
由 @UIApplication
做完全部工作了
寫自己的 main.swift (程式碼))
Pre-main
Loading: 減少 App size;減少 dylib 數目 (merge pods); 或者變成 statically linked pods
Rebase/Binding: iOS 13 幫你用 dyld3 做好 cache 了
Objc setup: 少點 ObjC code;少點 Category
Initializer: 盡量用 +initialize
取代 +load
Post-main: 少做事,多 lazy,盡量平行化處理
掃瞄沒用到 ObjC selector 的 script)
Xcode scheme 新增 env variable 可取得 pre-main 各時間: DYLD_PRINT_STATISTICS = 1
或 DYLD_PRINT_STATISTICS_DETAILS = 1
合併 Pods 的 plugin)
Pods 改 statically linked (Podfile example))
MetricKit 的介紹文章) 與 WWDC session)
在用戶端測量 pre-main 所花時間的程式碼)
抖音的重新排序 binary 方案)
FB 的 binary layout optimize)
關於此技術的其它相關評價)
聽眾信箱 [email protected])
Twitter @weak_self)
提問箱)
-- Hosting provided by SoundOn)