建筑师之家IOS / NOTES
← 全部笔记

性能

启动项按四步砍

能删就删,不能删就延后,不能延后再并发,最后才是把剩下的代码写快。

启动清单一长,人会从“这段能不能再快 10 毫秒”开始改。顺序反了。先问这个任务启动时要不要存在。

四步

埋点要能对上用户看见的时刻。进程创建是起点。终点接近第一帧提交,而不是某个业务自己觉得“准备好了”。iOS 12 及更早,可以用根控制器的 viewDidAppear 近似;更新的系统,applicationDidBecomeActive 更接近回到前台这一下。系统内部的第一次 CATransaction commit 才是官方口径,自己的点要靠近它,并且固定下来,前后才能比。

别动的东西

不要去删 tmp 里 dyld 的启动闭包。iOS 13 之后那份缓存能让下次启动少做很多工作,删掉会重新生成,生成本身很慢。Keychain、第一次取 User-Agent,老设备上会明显变慢,能延后或缓存就不要放在首帧前。

后台拉起可以提高“用户点开时进程还在”的比例,但日活、广告和实验进组都会被算进一次后台启动。这些任务要分清是冷启动还是从后台回前台,不能把前台才该做的事在后台做掉。