iOS 启动优化

2022-05-15  本文已影响0人  码农二哥

启动优化思考

在面试时遇到这个问题,很多人信手拈来,上来就说:+load、减少离屏渲染、二进制重排等。不得不说,针对这个问题,这确实很重要的一环,对于工作 3 年左右的工程师没有任何问题,但对于 > 5 年的高级研发工程师,是不是显得思考、方案不够系统化呢?(记住:面试时面试、盖楼是盖楼,我们可以稍微系统化思考一下这个问题)

5W2H 简单思考一下

为什么做(Why)

启动定义(What)

System Interface(Dyld 加载共享库和框架、初始化系统底层组件等) -> Runtime 初始化 -> UIKit 初始化 -> Application 初始化 -> 首帧 -> 用户可交互

建立指标(How much)

第一个 +load(如:n 个 A 的动态库中的 +load) or 进程创建时间等 -> 首页渲染完成(如:hook *** layoutSubviews + dispatch_async、动画结束等,对于视频类 app,视频启播第一帧可能更好)

优化方向(How)

防止劣化

上一篇下一篇

猜你喜欢

热点阅读