释放双眼,带上耳机,听听看~!
苹果为查看 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 方法中执行的代码
- 组件化