阿里数据iOS端启动速度优化心得

2020-01-21 04:51:11王旭

通过instruments的Time Profiler分析,优化后启动速度有明显提升,didFinishLaunchingWithOptions耗时在75ms左右(iPhone6s iOS10.3.3)

阿里数据,iOS,速度优化

启动耗时..png

其中目前耗时最多的是快捷密码验证页(PAPasscodeViewController)的创建&布局,其次是DTLaunchViewControlle里对是否要显示广告页的判断代码。可以看到PAPasscodeViewController的viewDidAppear耗时了78ms,但已经没有太大关系,此时用户已经看到了页面,准备去验证指纹/密码了。

总结&后续规划

1. 总结

总结起来,好像启动速度优化就一句话:让系统在启动期间少做一些事。当然我们得先清楚工程里做的哪些事是在启动期间做的、对启动速度的影响有多大,然后case by case地分析工程代码,通过放到子线程、延迟加载、懒加载等方式让系统在启动期间更轻松些。

2. 后续规划

2.1. 替代部分庞大的库,采用更轻量级的解决方案。

2.2. 整理代码,去除重复的实现,避免出现功能重复的类&分类&方法。

2.3. 梳理和移除已经下线的业务涉及的类&分类&方法。

2.4. 监控好灰度版本启动速度的变化趋势,尽早发现&解决拖慢启动速度的问题。


注:相关教程知识阅读请移步到IOS开发频道。