- Launch概念
- warm launch
- cold launch
- resume
-
启动阶段
Phases of App Launch启动阶段.png - demo
- 使用profile,app launch,record进行时间录制,逐步分析。
- 优化前2.4s,优化后0.3s
- 优化内容
- initialize - static runtime initialization
- 问题:Logger类,写了个复杂的load方法,load方法执行时间在main之前
- 解决方案:去除整个framework,xcode移除该framework。(也可以是将load内的内容,放到initialize方法中去)
- Launching - didFinishLaunchingWithOptions()
- 问题:在didFinishLaunchingWithOptions内,等待子线程执行完,子线程初始化了所有数据,且处理较慢
- 解决方案:只在didFinishLaunchingWithOptions初始化一部分数据,而且不等待子线程。
- Launching - initialFrameRendering
- 问题:首屏的界面涉及UITableView,涉及cellForRow方法,cellForRow里,加载了详情页的页面,太重了。
- 解决方案:去掉cellForRow对子页面的提前加载,改时机。
- initialize - static runtime initialization
- xctest
- 多次启动的效果
- 前后效果
Optimizing App Launch - WWDC19 2024-03-13
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 前言 启动时间是衡量应用品质的重要指标。 本文首先会从原理上出发,讲解iOS系统是如何启动APP的,然后从main...
- 本文首先会从原理上出发,讲解iOS系统是如何启动APP的,然后从main函数之前和main函数之后俩个角度去分析如...
- iOS 底层原理 文章汇总[https://www.jianshu.com/p/412b20d9a0f6] App...
- 目录 What is launch How to properly measure your launch Use...