App启动速度分析
2021-01-26 本文已影响0人
Jean_Lina
Total pre-main time: 96.58 milliseconds (100.0%)
dylib loading time: 19.23 milliseconds (19.9%)
rebase/binding time: 0.71 milliseconds (0.7%)
ObjC setup time: 9.73 milliseconds (10.0%)
initializer time: 66.89 milliseconds (69.2%)
slowest intializers :
libSystem.B.dylib : 3.32 milliseconds (3.4%)
libBacktraceRecording.dylib : 6.97 milliseconds (7.2%)
libMainThreadChecker.dylib : 26.53 milliseconds (27.4%)
AFNetworking : 25.11 milliseconds (26.0%)
-
main()函数之前
main()函数之前总共使用了96.58ms,在96.58ms中,
1、加载动态库用了19.23 ms,
2、指针重定位使用了0.71ms,
3、ObjC类初始化使用了9.73ms,
4、各种初始化使用了66.89 ms。
在初始化耗费的66.89 ms中,用时最多的三个初始化是libSystem.B.dylib、libBacktraceRecording.dylib以及libMainThreadChecker.dylib、AFNetworking。 -
main()函数之前耗时的影响因素
1、动态库加载越多,启动越慢
2、Objc类越多,启动越慢
3、Objc的+load越多,启动越慢
4、C++静态对象越多,启动越慢
5、C的constructor函数越多,启动越慢 -
main()函数之后耗时的影响因素
1、执行main()函数的耗时
2、执行didFinishLaunchingWithOptions的耗时
3、rootViewController及其childViewController的加载,view及其subviews的加载。