如何调试慢速应用程序启动

时间:2016-03-26 20:16:13

标签: ios xcode swift debugging

启动我的应用程序时,我的启动屏幕大约需要2-3秒,然后才会出现第一个UIViewController。

有时我的ViewDIdAppear在UIViewController实际出现之前被调用。

我有一个非常大的故事板(15个屏幕)。

我有一些标志,我从UserDefaults检查(用户已登录...),并初始化crashlytics和GCM。

因此标志和初始化似乎不是问题所在。

我检查了系统时差,看起来没问题。

调试慢速启动的任何想法?

2 个答案:

答案 0 :(得分:5)

在Xcode中:产品 - >资料

选择“Time Profiler”

运行此工具将为您提供在程序中的每个方法上花费的时间,并且它将以分层结构为您提供该信息。这应该可以让您了解大部分时间都花在哪里。请记住,检测会增加额外的开销,因此绝对时间值可能不正确,但是每个方法花费的时间比例应该是调试此问题所需的时间。

这是一个体面的tutorial(尽管是旧版Xcode),展示了如何使用这个工具。

enter image description here

答案 1 :(得分:2)

如果缓慢来自初始化时间,时间分析器将无法帮助您。在此期间,您的代码都没有运行,因此时间配置文件不会记录任何内容。 您可以通过转到“编辑方案” - >让xcode打印出启动所需时间的统计信息。跑 - >环境变量添加添加值为1的DYLD_PRINT_STATISTICS。理想情况下,您希望启动时间小于400毫秒,这大约是打开动画的长度。通过删除use_frameworks,我能够将发布时间缩短一半!来自cocoapods。我可以通过删除未使用的外部库将其减半。

这里有一个很棒的苹果讲座: https://developer.apple.com/videos/play/wwdc2016/406/