iOS Mark 优化点

APP 的入口在 main 函数 ,在 main 函数之后我们的代码才会执行。

这里有两个阶段
  1. pre-main阶段
    1.1. 加载应用的可执行文件
    1.2. 加载动态链接库加载器dyld(dynamic loader)
    1.3. dyld递归加载应用所有依赖的dylib(dynamic library 动态链接库)

  2. main()阶段
    2.1. dyld调用main()
    2.2. 调用UIApplicationMain()
    2.3. 调用applicationWillFinishLaunching
    2.4. 调用didFinishLaunchingWithOptions

一、pre-main阶段 优化思路是

1. 移除不需要用到的动态库
2. 移除不需要用到的类
3. 合并功能类似的类和扩展
4. 尽量避免在+load方法里执行的操作,可以推迟到+initialize方法中

二、main()阶段优化思路

1.梳理各个三方库,找到可以延迟加载的库,做延迟加载处理,比如放到首页控制器的viewDidAppear方法里。

2.梳理业务逻辑,把可以延迟执行的逻辑,做延迟执行处理。比如检查新版本、注册推送通知等逻辑。

3.避免复杂/多余的计算。

4.避免在首页控制器的viewDidLoad和viewWillAppear做太多事情,这2个方法执行完,首页控制器才能显示,部分可以延迟创建的视图应做延迟创建/懒加载处理。

5.采用性能更好的API。

6.首页控制器用纯代码方式来构建。

参考:https://www.jianshu.com/p/0858878e331f
日志堆栈解析 : https://juejin.im/post/5adf15f2518825671775f3e1#comment

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容