在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加载时间、广告页加载时间、首页加载时间等等。
网友评论