调用applicationDidFinishLaunching之前会发生什么?

时间:2010-05-28 10:48:58

标签: iphone performance startup delay splash-screen

我正在我的iphone应用程序上进行性能测试,并且我注意到在我开始从applicationDidFinishLaunching看到我的NSLog之前,有时在启动时经过了3-4秒。我已经优化了代码进入applicationDidFinishLaunching后会发生什么,但我不确定如何优化之前发生的事情。我正在使用Default.png启动画面,因此它在进入applicationDidFinishLaunching并开始执行某些操作之前基本上只停留在该屏幕上。

只是为了给你们一些上下文,我没有nib文件,我正在使用核心动画,如果这有任何区别。我有大约10个不同的控制器,我的总包大小不到2MB。

2 个答案:

答案 0 :(得分:1)

尝试在没有附加调试器的情况下运行它 - 它在启动时所做的一件事是等待连接到你的mac;)

如果您只是在未连接Mac的情况下在设备中运行它,您仍会看到延迟吗?

答案 1 :(得分:0)

我做了一些实验,发现大多数应用的默认开始时间是3秒或更长。

我很恼火,语音备忘录应用程序需要10秒才能启动,到那时我已经忘记了我要说的话。我尝试编写一个可以更快启动并使用default.png并自动开始录制的录音机,我会在1-1.5秒内不断启动录音机。为了获得启动时间,我必须在界面变为活动状态之前启动录像机。

然而,在这项研究中,我发现大多数应用程序,例如一个直接从Xcode模板编译的应用程序,无需修改,在3-5秒内启动。

基于这个事实,我会说你真的没有问题。启动时间落在预期范围内。 deanWombourne's observation about the debugger最有可能是正确的,它可能会为您的启动时间增加一两秒。