Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/99.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Xcode中调试间歇缓慢的iOS iPhone应用程序加载时间?_Ios_Iphone_Xcode_Swift_Optimization - Fatal编程技术网

如何在Xcode中调试间歇缓慢的iOS iPhone应用程序加载时间?

如何在Xcode中调试间歇缓慢的iOS iPhone应用程序加载时间?,ios,iphone,xcode,swift,optimization,Ios,Iphone,Xcode,Swift,Optimization,我有一个iOSXcode项目,以前加载速度很快,但现在在加载过程中会挂起5秒或更长时间。当应用程序在iPhone上运行时,启动屏幕会立即显示,但有时,并非总是,而且不可预测,应用程序会挂起约5秒或更长时间,直到实际界面显示出来。它发生在模拟器和不同iOS版本7、8、9的设备上 最近,一个包含drawRect函数的UIView类发生了轻微的更改,它有一个到其中一个ViewController的出口连接,但总体上没有发生重大更改。一个ViewController在ViewDidLoad、ViewWi

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

最近,一个包含drawRect函数的UIView类发生了轻微的更改,它有一个到其中一个ViewController的出口连接,但总体上没有发生重大更改。一个ViewController在ViewDidLoad、ViewWillDisplay和ViewDidDisplay函数中有代码。我正在调查所有这些因素是否影响了加载时间

当我终止应用程序时,下一次尝试运行它时,它的加载速度非常快,没有问题。我不知道如何理解这种负载行为

问题

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

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

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

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


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

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

当我终止应用程序时,下一次尝试运行它时,它的加载速度非常快,没有问题。我不知道如何理解这种负载行为

你是说退出应用程序吗?还是真的杀了它?原因如果是前者,那么原因是应用程序刚刚从暂停状态启动


我建议您仔细查看
didfishlaunchingwithoptions:
,并检查您是否正在做的事情花费的时间超过了需要的时间。使用时间分析器仪器运行应用程序,它会告诉您瓶颈在哪里。

要确认,这发生在运行应用程序的设备上,未连接到Xcode或调试器?@sschare是的,这是正确的,运行在设备上,未插入或连接到Xcode。所谓“不可预测”也指罕见?如果你在绑定到Xcode的模拟器中运行应用程序10或20次,其中一个会缓慢启动吗?如果你能经常重现这个问题,那么调试就容易多了。此外,如此长的延迟通常意味着联网,所以测试网络是否关闭,看看它是否挂起更可靠(最好是保持联网但不进行路由,但如果你不控制你的网络,这会有点复杂)。egardless,同意@Carlos的观点,你应该尝试在仪器上捕捉可能出错的事情。所以,在模拟器中,可能每十次加载一次。在设备一段时间未使用后,它可能会加载缓慢,但并非总是如此。我以前使用过仪器进行一般概述,但对于这个问题,我想我在发布时在仪器中寻找一些特定的东西。是的,澄清一下,我指的是双击“主页”按钮关闭应用程序。对不起,请您解释一下didFinishLaunchingWithOptions是什么意思,我该如何准确地使用它?我建议您查看应用程序代理的
didFinishLaunchingWithOptions:
方法。因为这是应用程序启动时第一个被调用的东西。时间分析器会告诉你是否有任何事情需要比平时更长的时间。