高德APP启动耗时剖析与优化实践(iOS篇)
前言
最近高德地图APP完成了一次启动优化专项,超预期将双端启动的耗时都降低了65%以上,iOS在iPhone7上速度达到了400毫秒以内。就像产品们用后说的,快到不习惯。算一下每天为用户省下的时间,还是蛮有成就感的,本文做个小结。
(文中配图均为多才多艺的技术哥哥手绘)
启动阶段性能多维度分析
要优化,首先要做到的是对启动阶段的各个性能纬度做分析,包括主线程耗时、CPU、内存、I/O、网络。这样才能更加全面的掌握启动阶段的开销,找出不合理的方法调用。
启动越快,更多的方法调用就应该做成按需执行,将启动压力分摊,只留下那些启动后方法都会依赖的方法和库的初始化,比如网络库、Crash库等。而剩下那些需要预加载的功能可以放到启动阶段后再执行。
启动有哪几种类型,有哪些阶段呢?
启动类型分为:
- Cold:APP重启后启动,不在内存里也没有进程存在。
- Wa

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
【云栖号案例 | 教育与科研机构】得到APP上云 全链路压测让业务爆发更稳着陆
云栖号案例库:【点击查看更多上云案例】不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 新冠肺炎的疫情突如其来,各个行业都在忙着为“抗疫”做些力所能及的事情。作为知识服务行业领头兵的得到也不例外。 得到是阿里云的合作伙伴。作为一家知识服务公司,得到APP的抗疫工作,春节前就开始了。 1月24日晚,得到APP、深圳卫视和爱奇艺联合出品的《2020知识春晚》。首次推出没有歌舞娱乐,没有工作人员以外的现场观众,只有素人独立演讲,面向全球同步直播长达10小时的新形式。得到APP创始人罗振宇在演播厅向观众示范如何正确戴口罩,还邀请了北京大学第三医院危重医学科医生薄世宁,向大家演示正确的洗手方式。2020知识春晚创下了爱奇艺知识分享类直播内容的最高成绩。 紧接着,关于疫情的各种消息满天飞,得到不仅免费提供专业、一手的相关医学知识,更早早开始把重点放在“怎么办”上,用知识和方法助力抗疫。邀请旗下老师,浙江大学生命科学研究院教授王立铭制作发布了《巡山报告-2019新型冠状病毒的来龙去脉》,对当下的相关论文和网络上的各类信息进行梳理研读,目前报告综合阅读量超过79万;...
- 下一篇
好程序员Java培训分享零基础学Java能行吗 有哪些难点
相对于很多行业来说,IT开发行业发展前景好、薪资待遇高,已经成为了众多年轻人的选择,因此,越来越多的人选择进入Java开发领域。他们中的绝大多数人都没有编程基础,那么对于零基础学习Java开发的人来说面临的主要难点有哪些呢?下面,好程序员Java培训小编给大家介绍一下。Java初学者从入门到真正的实战开发需要学习的知识点非常多,当你的基础知识未完全掌握的时候,在学习过程中会遇到各种各样的问题,自学的话只能依靠搜索引擎摸索,这个过程是非常艰难的。不过如果顺利入门后,你就会发现,其实Java也并非想象中的那么难。根据以往的观察和积累,小编总结了零基础的同学学习Java共通的难点:1、自学过程中容易走弯路走弯路是初学Java的小伙伴常见的问题。由于大家对Java没有宏观的认识,没有系统的Java学习体系,导致大家在有的已经不流行的知识点上耽误很多的学习时间。2、没有老师答疑学习任何新的知识,难免会遇到无法理解的问题,或者bug,比如环境安装,语法应用等等,本来比较简单的问题,自己摸索却需要耽误非常多的时间。尤其遇到bug的时候,往往自己很难找到里面的错误,或者同样的错误经常遇到,这个时候如果...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- 2048小游戏-低调大师作品