- Launch概念
- warm launch
- cold launch
- resume
-
启动阶段
- 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...