在App性能優化中,有一塊就是啓動時間的優化。那如何獲取App冷啓動所需要的時間呢?
找到 Edit scheme -> Run -> Auguments
將環境變量 DYLD_PRINT_STATISTICS
設爲 1,如下圖,然後運行。
運行後,能看到控制檯打印出日誌。
Total pre-main time: 396.73 milliseconds (100.0%)
dylib loading time: 147.70 milliseconds (37.2%)
rebase/binding time: 43.57 milliseconds (10.9%)
ObjC setup time: 57.86 milliseconds (14.5%)
initializer time: 147.45 milliseconds (37.1%)
slowest intializers :
libSystem.B.dylib : 9.33 milliseconds (2.3%)
libMainThreadChecker.dylib : 34.97 milliseconds (8.8%)
libViewDebuggerSupport.dylib : 9.96 milliseconds (2.5%)
AFNetworking : 53.18 milliseconds (13.4%)
ProjectName : 53.38 milliseconds (13.4%)
可以看到在進入main()
函數之前,一共耗時396.73ms。並且列舉了加載比較慢的文件。
把DYLD_PRINT_STATISTICS
改成DYLD_PRINT_STATISTICS_DETAILS
後運行,能打印出更加詳細的日誌,如下圖。
另外推薦一個代碼耗時打點計時器,可以記錄SDK加載時間、廣告頁加載時間、首頁加載時間等等。