iOS 基於PGO優化啓動時間

前言

本文再也不詳細闡述iOS啓動流程,以及二進制重排的詳細原理。只介紹一種至關簡單有效的優化啓動時間的方法。這就是****Profile Guided Optimization,能夠大幅度下降page In 次數。html

附蘋果文檔(很是古老的一個文檔)xcode

developer.apple.com/library/arc… markdown

二進制重排 ,Page In 相關概念能夠參考一下抖音二進制重排方案 附連接 mp.weixin.qq.com/s/Drmmx5Jtj…app

PGO配置

PGO是蘋果官方提供的工具,具體使用方法是點擊xcode工具欄 Product -> Perform Action -> Generate Optimization Profile 按xcode提示操做便可 ide

點擊Run後待項目啓動完成後,點擊xcode的中止按鈕,項目中會自動添加一個OptimizationProfiles文件夾。在build setting中搜索 Use optimization Profile,將release配置爲yes,須要注意的是,蘋果文檔中說明,PGO只支持release環境。工具

查看項目Page In次數

配置PGO完成後能夠用instruments查看項目pageIn次數。效果至關可觀。具體操做步驟 點擊xcode工具欄Open Developer Tool  -> instruments  ->  System trace oop

點擊紅色按鈕等待項目徹底啓動完畢,再點擊暫停按鈕,獲得分析數據,搜索main Thread,如圖優化

每次啓動獲得的Page In次數並不會徹底相同,這取決於app佔用的物理內存是否已經被覆蓋。殺死app以後,app的物理內存有可能還在。ui

相關文章
相關標籤/搜索