【问题标题】:How to debug intermittent slow iOS iPhone app load times in Xcode?如何在 Xcode 中调试间歇性缓慢的 iOS iPhone 应用程序加载时间?
【发布时间】:2016-03-07 01:57:35
【问题描述】:

我有一个 iOS Xcode 项目,以前加载速度很快,但现在加载过程中会时不时地挂起 5 秒或更长时间。当应用程序在 iPhone 上运行时,启动屏幕会立即显示,但有时,并非总是如此,而且出乎意料的是,应用程序只会挂起大约 5 秒或更长时间,直到显示实际界面。它在不同 iOS 版本 7、8、9 的模拟器和设备上都发生。

最近,一个包含 drawRect 函数的 UIView 的类发生了轻微的变化,它与其中一个 ViewController 有一个出口连接,但总体上没有重大变化。一个 ViewController 在 ViewDidLoad、ViewWillAppear、ViewDidAppear 函数中有代码。我正在调查所有这些事情是否会影响加载时间。

当我终止应用程序时,下次我尝试运行它时,它会以超快的速度加载而不会出现问题。我不知道如何处理这种加载行为。

问题

1 - 我可以在 Xcode 中使用哪些方法来调试在不规则和不可预测的时间缓慢加载的应用程序?

2 - 我应该注意项目中哪些明显的项目,这些项目通常会导致加载时间缓慢或延长?

3 - Xcode 是否包含工具来监控加载时实时运行的进程?

4 - 是否可以打印我可以查看的加载过程的输出?

非常感谢任何有经验的建议。谢谢。

【问题讨论】:

  • 确认一下,这发生在运行您的应用程序的设备上,未连接到 Xcode 或调试器?
  • @sschale 是的,没错,在设备上运行,未插入或连接到 Xcode。
  • “不可预测”是指稀有吗?如果您在绑定 Xcode 的模拟器中运行应用程序 10 或 20 次,其中一个会启动缓慢吗?如果您可以经常重现问题,那么调试起来会容易得多。此外,如此长的延迟通常表明网络,因此在关闭网络的情况下进行测试,看看它是否更可靠地挂起(更好的是保持网络打开但不进行路由,但如果你不控制你的网络)。
  • 不管怎样,同意@Carlos,你应该尝试在 Instruments 上捕捉可能出错的东西。
  • 因此,可能每十次在模拟器中加载一次。设备一段时间未使用后,它可能会加载缓慢,但并非总是如此。

标签: ios iphone xcode swift optimization


【解决方案1】:

不确定您是否看过仪器。这是确定您的应用存在此类问题的最佳方法。

https://developer.apple.com/library/watchos/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/index.html

当我终止应用程序时,下次我尝试运行它时,它会以超快的速度加载而不会出现问题。我不知道如何处理这种加载行为。

您的意思是退出应用程序吗?还是真的杀了它?因为如果是前者,那么原因是应用刚刚从挂起状态启动。

我建议仔细查看didFinishLaunchingWithOptions:,并检查您是否正在做一些比需要更多时间的事情。使用时间分析器工具运行您的应用程序,它会告诉您瓶颈在哪里。

【讨论】:

  • 我以前使用过这些仪器进行一般概述,但对于这个问题,我想我正在寻找启动时仪器中的特定内容。是的,澄清一下,当双击主页按钮关闭时该应用程序就是我的意思。抱歉,您能否通过查看 didFinishLaunchingWithOptions 来解释您的意思,我该如何使用它?
  • 我建议您查看应用程序委托的 didFinishLaunchingWithOptions: 方法。因为这是在应用程序启动时调用的第一件事。时间分析器会告诉您是否有任何事情比平时花费的时间更长。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-31
  • 1970-01-01
  • 2013-06-14
  • 2011-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多