本文再也不詳細闡述iOS啓動流程,以及二進制重排的詳細原理。只介紹一種至關簡單有效的優化啓動時間的方法。這就是****Profile Guided Optimization,能夠大幅度下降page In 次數。html
附蘋果文檔(很是古老的一個文檔)xcode
developer.apple.com/library/arc… markdown
二進制重排 ,Page In 相關概念能夠參考一下抖音二進制重排方案 附連接 mp.weixin.qq.com/s/Drmmx5Jtj…app
PGO是蘋果官方提供的工具,具體使用方法是點擊xcode工具欄 Product -> Perform Action -> Generate Optimization Profile 按xcode提示操做便可 ide
點擊Run後待項目啓動完成後,點擊xcode的中止按鈕,項目中會自動添加一個OptimizationProfiles文件夾。在build setting中搜索 Use optimization Profile,將release配置爲yes,須要注意的是,蘋果文檔中說明,PGO只支持release環境。工具
配置PGO完成後能夠用instruments查看項目pageIn次數。效果至關可觀。具體操做步驟 點擊xcode工具欄Open Developer Tool -> instruments -> System trace oop
點擊紅色按鈕等待項目徹底啓動完畢,再點擊暫停按鈕,獲得分析數據,搜索main Thread,如圖優化
每次啓動獲得的Page In次數並不會徹底相同,這取決於app佔用的物理內存是否已經被覆蓋。殺死app以後,app的物理內存有可能還在。ui