美文网首页
iOS 专项测试--启动时长

iOS 专项测试--启动时长

作者: Maggie的小蜗居 | 来源:发表于2019-06-25 12:15 被阅读0次

App的启动分为冷启动和热启动。如果启动时间过长,首先引起的用户体验直线下降,再者是可能会激发苹果的watch dog机制kill掉App。

APP的启动流程

APP的启动可以分为两个阶段,即main()执行之前和main()执行之后。总结如下:

t(App 总启动时间) = t1(main()之前的加载时间 ) + t2(main()之后的加载时间 )。

t1 = pre-main 系统的 dylib (动态链接库)和 App 可执行文件的加载时间;

t2 = main() 函数执行之后到AppDelegate类中的applicationDidFinishLaunching:withOptions:方法执行结束前这段时间。

1.pre-main阶段

对于pre-main阶段,Xcode9之后,Apple提供了一种测量方法,在 Xcode 中 Edit scheme -> Run -> Auguments 将环境变量DYLD_PRINT_STATISTICS 设为1 :

程序运行起来之后 log

如下图所示,包含 main 函数执行之前各项的加载时间,我们可以多次运行取一下平均值,苹果推荐这个时间应在 400ms 以内

2.main

CFAbsoluteTime StartTime;

int main(int argc, char * argv[]) {

    @autoreleasepool {

             StartTime = CFAbsoluteTimeGetCurrent();

              return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

}}

extern CFAbsoluteTime StartTime;

...

// 在 applicationDidFinishLaunching:withOptions: 方法的最后统计

dispatch_async(dispatch_get_main_queue(), ^{

            NSLog(@"Launched in %f sec", CFAbsoluteTimeGetCurrent() - StartTime);

});

3. 优化的目标

由于每个App的情况有所不同,需要加载的数据量也有所不同,事实上我们无法使用一种统一的标准来衡量不同的App。苹果。

应该在400ms内完成main()函数之前的加载

整体过程耗时不能超过20秒,否则系统会kill掉进程,App启动失败

400ms内完成main()函数前的加载的建议值是怎样定出来的呢?其实我也没有太深究过这个问题,但是,当用户点击了一个App的图标时,iOS做动画到闪屏图出现的时长正好是这个数字,我想也许跟这个有关。

相关文章

  • iOS 专项测试--启动时长

    App的启动分为冷启动和热启动。如果启动时间过长,首先引起的用户体验直线下降,再者是可能会激发苹果的watch d...

  • iOS专项测试杂谈

    最近稍微尝试了一些iOS专项测试:压力测试、CPU、内存、流量、耗电量测试等等,本文就简单聊聊iOS专项测试。 一...

  • 安卓专项测试

    为什么要做专项测试,专项测试的范畴有哪些,常用的工具有哪些,如何制定专项测试计划 启动时间 首屏 内存泄漏/内存溢...

  • 测试开发笔记八(专项测试)

    01 | App启动性能分析 基本的测试checklist和手段 专项测试(用户维度) 崩溃(Crash,弱网) ...

  • iOS - 启动页时长

    设置启动图片的停留时间: 苹果默认启动页停留的时间很短,有时不满足我们的需求,这时我们就可以手动控制启动页停留的时...

  • iOS测试

    专项测试在功能测试之后,需要来说说专项测试了。专项测试是很多测试类型的统称。在专项测试中,主要需要做性能测试、稳定...

  • 专项测试-APP

    关键词:专项测试 APP 概述 APP专项测试包括兼容性测试、流量测试、电量测试、弱网络测试、安装更新卸载测试、...

  • iOS 如何优化 App 的启动耗时

    iOS 的 App 启动时长大概可以这样计算: t(App 总启动时间) = t1(main 调用之前的加载时间)...

  • iOS 打印app启动时长

    如何通过在Arguments中设置参数,打印出App加载时各项加载项的时长,包括整体加载时长,动态库加载时长等. ...

  • 高德 APP 启动耗时剖析与优化实践(iOS 篇)

    前言 最近高德地图APP完成了一次启动优化专项,超预期将双端启动的耗时都降低了65%以上,iOS在iPhone7上...

网友评论

      本文标题:iOS 专项测试--启动时长

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