美文网首页iOS开发之常用技术点
iOS客户端启动速度优化

iOS客户端启动速度优化

作者: 3391a91577f4 | 来源:发表于2017-02-10 10:39 被阅读163次

今日头条——iOS客户端启动速度优化

关注度——★★★★

正文——众所周知,一款软件、一个客户端的使用,给人的体验度是非常重要的,只有有好的体验度,才会有口碑,才会有越来越多的人使用,而一个客户端启动速度是非常重要的,这是用户对产品的第一印象。

应用启动时间,直接影响用户对一款应用的判断和使用体验。头条主app本身就包含非常多并且复杂度高的业务模块(如新闻、视频等),也接入了很多第三方的插件,这势必会拖慢应用的启动时间,本着精益求精的态度和对用户体验的追求,我们希望在业务扩张的同时最大程度的优化启动时间。

main()调用之前的加载过程

App开始启动后, 系统首先加载可执行文件(自身App的所有.o文件的集合),然后加载动态链接库dyld,dyld是一个专门用来加载动态链接库的库。 执行从dyld开始,dyld从可执行文件的依赖开始, 递归加载所有的依赖动态链接库。

系统使用动态链接有几点好处:

代码共用:很多程序都动态链接了这些 lib,但它们在内存和磁盘中中只有一份。

易于维护:由于被依赖的 lib 是程序执行时才链接的,所以这些 lib 很容易做更新。

减少可执行文件体积:相比静态链接,动态链接在编译时不需要打进去,所以可执行文件的体积要小很多。

找到拖慢启动应用时长的瓶颈

为了找到瓶颈,我们在启动之后的didFinishLauhcning方法开始执行到首页列表页的NewsListViewController的viewDidAppear方法,几乎每个可能比较耗时的流程进行拆分和统计,得到统计数据之后发现:

主要耗时在首页UI构造和渲染(storyboard加载,tabBar/topBar渲染,开屏广告加载/cell注册/日志模块初始化这几个步骤)。

具体优化点

因此,针对于今日头条这个App我们可以优化的点如下:

1.纯代码方式而不是storyboard加载首页UI。

2.对didFinishLaunching里的函数考虑能否挖掘可以延迟加载或者懒加载,需要与各个业务方pm和rd共同check 对于一些已经下线的业务,删减冗余代码。

对于一些与UI展示无关的业务,如微博认证过期检查、图片最大缓存空间设置等做延迟加载

3.对实现了+load()方法的类进行分析,尽量将load里的代码延后调用。

4.上面统计数据显示展示feed的导航控制器页面(NewsListViewController)比较耗时,对于viewDidLoad以及viewWillAppear方法中尽量去尝试少做,晚做,不做。

相关文章

  • iOS启动优化文章汇总

    今日头条iOS客户端启动速度优化 WWDC 2016 Session笔记:App启动时间优化 Facebook i...

  • iOS App 启动时间的优化初尝试

    不是很忙,快下班的时间,实践一波优化启动时间,发现还是点点效果的iOS启动时间优化今日头条iOS客户端启动速度优化...

  • 2020年11月第三周

    1、【性能优化】今日头条iOS客户端启动速度优化 https://www.jianshu.com/p/709647...

  • iOS客户端启动优化

    最近读了几篇文章,关于iOS启动优化,目前看,只有这一篇全面透彻一点。 今日头条iOS客户端启动速度优化 应用启动...

  • iOS APP启动优化文章

    我是如何让微博绿洲的启动速度提升30%的 iOS App 启动性能优化 iOS APP启动速度优化的一些经验

  • 收集一

    启动速度优化 爱奇艺技术分享:爱奇艺Android客户端启动速度优化实践总结https://cloud.tence...

  • iOS客户端启动速度优化

    今日头条——iOS客户端启动速度优化 关注度——★★★★ 正文——众所周知,一款软件、一个客户端的使用,给人的体验...

  • 点击应用图标到启动应用整个过程,系统进行了什么操作

    相关文章 详情1 详情2 详情3✨ 今日头条iOS客户端启动速度优化 - 今日头条技术博客 整体启动过程分为 pr...

  • iOS客户端启动速度优化

    对于main()调用之前的耗时我们可以优化的点有: 减少不必要的framework,因为动态链接比较耗时 chec...

  • APP性能优化(一)启动优化

    iOS App 启动性能优化WWDC之优化App启动速度 Instruments 包含的工具有很多,Time Pr...

网友评论

    本文标题:iOS客户端启动速度优化

    本文链接:https://www.haomeiwen.com/subject/tyrgittx.html