苹果为查看 pre-main 提供了支持,具体配置如下,配置的 key 为:DYLD_PRINT_STATISTICS。
然后再运行项目,Xcode 就会在控制台输出这部分 pre-main 的耗时:
Total pre-main time: 2.2 seconds (100.0%)
dylib loading time: 1.0 seconds (45.2%)
rebase/binding time: 100.05 milliseconds (4.3%)
ObjC setup time: 207.21 milliseconds (9.0%)
initializer time: 946.39 milliseconds (41.3%)
slowest intializers :
libSystem.B.dylib : 8.54 milliseconds (0.3%)
libBacktraceRecording.dylib : 46.30 milliseconds (2.0%)
libglInterpose.dylib : 187.42 milliseconds (8.1%)
beiliao : 896.56 milliseconds (39.1%)
但是这部分不是那么好处理,因为这部分主要是由以下几个方面影响的:
用到的系统的动态库的数量,比如 UIKit.framework 等
cocoapods 里引用的第三方框架数量
项目中类的数量
load 方法中执行的代码
组件化
君凯商联网-iOS-字唐名僧