启动我的应用程序时,我的启动屏幕大约需要2-3秒,然后才会出现第一个UIViewController。
有时我的ViewDIdAppear在UIViewController实际出现之前被调用。
我有一个非常大的故事板(15个屏幕)。
我有一些标志,我从UserDefaults检查(用户已登录...),并初始化crashlytics和GCM。
因此标志和初始化似乎不是问题所在。
我检查了系统时差,看起来没问题。
调试慢速启动的任何想法?
答案 0 :(得分:5)
在Xcode中:产品 - >资料
选择“Time Profiler”
运行此工具将为您提供在程序中的每个方法上花费的时间,并且它将以分层结构为您提供该信息。这应该可以让您了解大部分时间都花在哪里。请记住,检测会增加额外的开销,因此绝对时间值可能不正确,但是每个方法花费的时间比例应该是调试此问题所需的时间。
这是一个体面的tutorial(尽管是旧版Xcode),展示了如何使用这个工具。
答案 1 :(得分:2)
如果缓慢来自初始化时间,时间分析器将无法帮助您。在此期间,您的代码都没有运行,因此时间配置文件不会记录任何内容。 您可以通过转到“编辑方案” - >让xcode打印出启动所需时间的统计信息。跑 - >环境变量添加添加值为1的DYLD_PRINT_STATISTICS。理想情况下,您希望启动时间小于400毫秒,这大约是打开动画的长度。通过删除use_frameworks,我能够将发布时间缩短一半!来自cocoapods。我可以通过删除未使用的外部库将其减半。
这里有一个很棒的苹果讲座: https://developer.apple.com/videos/play/wwdc2016/406/