iOS知识复习笔记(10)---app启动优化
2023-01-16 本文已影响0人
焦下客
app启动优化主要分两个阶段 pre-main 和 main()到首屏显示。
pre-main()阶段主要处理的事情如下:
- 加载可执行文件mach-o
- 加载动态链接器dyld
- Rebase/bind ,进行rebase指针调整和符号绑定
- runtime初始化包括类,分类注册 selector唯一性检查等
- load方法加载,attribute修复函数调用、c++虚函数调用
pre-main()优化思路
- 减少不必要的load方法,或使用initialize替代
- 合并多个动态库
- 减少c++虚函数等,移除不适用的类和方法。
main()后优化思路
- 只处理首屏相关业务,其他的按需加载
- 耗时操作可以放到异步线程处理