首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

iOS 优化App启动时间-启动详解(上篇)

看了一下2016年的WWDC关于优化启动时间的PPT,有些感悟和总结,记录一下。...这篇文章你能学到什么 ---- 理论: 我们在进入mian()函数之前发生了什么事情 Mach -O的格式 虚拟内存基础知识 二进制Mach -O怎么被加载和准备 实用部分: 怎么去计算启动时间 优化启动时间...Mach -O、虚拟内存速成课 ---- 主要简单的介绍了Mach -O和虚拟内存的知识,下文在app启动的时会有很多相关的术语,不知道会懵逼。...APP启动 ---- app启动的时候,内核会把app映射到一个新的内存空间,开始地址是随机的。 ? 然后内核通过Dyld来加载动态库。...在可执行文件中调用main() Pre-main() 总结 pre-mian 阶段主要是Dyld做的工作: 深度加载依赖的动态库 修正DATA pages的指针 运行初始化工作 篇幅有限,这边总结了原理,下篇总结启动时间优化相关

2.5K30
您找到你想要的搜索结果了吗?
是的
没有找到

App测试】怎么测试启动时间

启动时间对于App的性能测试,启动时间是个重要指标,启动时间分为两种情况,一种是冷启动时间(通常是系统重启,即在启动前没有该App进程的情况),另一种是热启动,即App从被切换到前台(点back退出后再点击图标启动...QA测试时,一般关注冷启动启动时间。以下介绍三种测试启动时间的方法,供大家参考,可以有针对性的使用。...(2)点击收集图标,app完全启动后,使用ctrl+c结束视频录制。 (3)使用命令adb pullsdcard/lanch.mp4 ....可以把这里作为点击时间,然后根据体验要求,看到app启动页完全绘制完作为终止时间,这个时间减去点击时间就是app启动时间。...以上两种方法,单从启动时间看,是无法定位出具体哪个函数耗时多一些,遇到启动时间大于预定的启动时间阀值时,需一步步的打log,分析查明原因。

5.9K00

如何统计Android App启动时间

真爱,请置顶或星标 作者:申国骏 https://www.jianshu.com/p/59a2ca7df681 随着App的逻辑不断庞大,一不注意就会将耗时的操作放置在应用启动过程之中,导致应用启动速度越来越慢...优化启动速度是几乎所有大型App应用开发者需要考虑的问题。优化启动速度之前首先需要准确测量App启动时间,这样有利于我们更准确可量化地看出优化效果,也可以指导我们进行持续优化。...热启动时间指在Application仍然存在的情况下,从用户点击桌面图标,到首页内容全部展示出来的时间App启动流程 要优化以及分析启动时间,需要先了解App启动流程。...这导致了这次热启动实际上打log的时候发现有上次冷启动的开始时间,算成了冷启动,而且因为启动时间是上一次的,所以这次冷启动log的时间比实际时间长。...具体优化的方法可以看下一篇文章《如何优化Androd App启动速度》。

2.6K50

OC底层探索26-App启动时间优化OC底层探索26-App启动时间优化

本文中所说的启动都指:冷启动。 冷启动:内存中不包含APP的数据,所有数据都需要从Mach-o载入到内存中,提供给应用使用。 热启动:内存中仍然存在APP的数据,数据不需要重新载入内存。...1.2 启动耗时查看 想要优化启动时间,就需要要知道启动app都做了什么?通过添加环境变量可以打印出APP启动时间分析(Edit Scheme -> Run -> Arguments) ?...1.3 提高main()函数之前的加载时间 1.动态库加载越多,启动越慢。 2.ObjC类,方法越多,启动越慢。 3.ObjC的+load越多,启动越慢。...根据本文中4.3,修改项目oreder.file配置 demo下载 用在我自己的项目中,冷启动平均减少了50毫秒的启动时间。...其实还是不错~ 参考链接: AppOrderFiles iOS优化篇之App启动时间优化

80330

使用 Jetpack App Startup 库减少应用启动时间

作者 / Yacine Rezgui 应用启动时间是应用性能的关键衡量指标。应用启动后,用户期望能够得到快速响应并加载内容,当不符合预期时用户会感到失望。...Jetpack App Startup 库在应用启动时以一种简单、高效的方法来初始化组件。库开发者和应用开发者都可以使用 App Startup 简化启动流程,并显式指定初始化顺序。...每减少一个 ContentProvider 通常会有约 2ms 的收益,这可以显著提高应用启动速度。App Startup 还可以简化 延迟初始化组件 操作,从而帮助您进一步提高启动性能。...当 App Startup 进入稳定版本后,我们将更新诸如 WorkManager 和 ProcessLifecycle 之类的库,以从中受益。 App Startup 支持 API 14 及以上。...延迟初始化 我们强烈推荐您使用延迟初始化来进一步提升启动性能,您可以通过如下方式实现组件的延迟初始化,在 条目下为 Initializer 增加 tools:node="remove

36520

App 启动优化

/平均工作时间)进行设定 异步痛点 代码不优雅,维护成本高 创建场景不好处理,不如依赖关系 冷启动(Cold start) 冷启动是指APP在手机启动后第一次运行,或者APP进程被kill掉后在再次启动...可见冷启动的必要条件是该APP进程不存在,这就意味着系统需要创建进程,APP需要初始化。在这三种启动方式中,冷启动耗时最长,对于冷启动的优化也是最具挑战的。因此本文重点谈论的是对冷启动相关的优化。...在最近任务给App加锁和启动方式有什么关系 某些厂商为了用户体验提供了给APP上锁的功能,目的就是让用户自己做主是上锁的APP不被杀,启动的时候不会处于冷启动方式,但是加锁也不是万能的,Low memory...这其中的道理简单说就是学习用户的使用习惯,提前将App进程创建好,当用户打开APP时不会出去冷启动。...Android APP启动时会出现白屏 由于应用程序启动时冷启动,系统会默认在启动启动空白窗口 应用程序启动有三种状态,每种状态都会影响应用程序对用户可见所需的时间:冷启动,热启动和温启动

1.3K10

全方位讲解APP启动时间不同测试方法记录分享

2.通过命令adb shellam start -W -n +包名/Activity 启动页面,确认下手机页面跳转,然后dos下会显示启动时间,总共有三个,具体判断标准如下:启动时间参考如果只关心某个应用自身启动耗时...其中需要注意这边有一个LauchState状态,这个是代表冷启动(cold)还是暖启动 (hot),这个两个区别就是app进程在不在,具体还有一个warm 温启动,就是页面切换到后台放久一点就可以把...kill(myPid))这时的app进程还活着,用户此时又点击了桌面的启动图标,app进程不需要重新启动 但是actiivty需要重新创建 2)由于系统内存紧张 app进程被杀了 但是系统的back stack...还保留着活动 此时用户启动app hot start:进程存在activity也没有销毁(按下home键)此时再回到app 还有情况就是系统内存紧张调用了activity的onTrimMemory()...; 缺点: 1.环境配置相对复杂; 2.需要编写脚本; 3.需要编程基础; 测试标准: 1.测试多次求平均值,然后对比标准 2.竞品/新旧版本对比; 测试APP启动时间参考标准 Cold启动5s以下

78250

App启动启动白屏处理

近日在开发过程中,发现每次点击app从桌面启动都有一个在桌面明显的等待时间,机型越低端的越明显,冷启动优化看来已经势在必行,所以怒而一顿研究再解决之。...1冷启动 第一次启动、被用户杀死进程或系统自动回收进程后,整个app后台任务被清理,再次启动app,称为 冷启动。...特点:后台任务全部结束,回收进程 2热启动 用户点击返回键退回界面,后台任务没有杀死,再次点击启动app,称为 热启动。...的onCreate方法中执行耗时间的操作,就会出现白屏。...5白屏如何解决 大致有以下三种方法: 使用IntentService实现异步处理耗时的操作; 将背景图设置成我们APP的Logo图,作为APP启动的引导,现在市面上大部分的APP也是这么做的 将背景颜色设置为透明色

1.4K20
领券