【问题标题】:What happens before applicationDidFinishLaunching is invoked?在调用 applicationDidFinishLaunching 之前会发生什么?
【发布时间】:2023-03-21 10:41:01
【问题描述】:

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

只是为了给你们一些背景信息,我没有 nib 文件,我正在使用核心动画,如果这有什么不同的话。我有大约 10 个不同的控制器,我的总包大小不到 2MB。

【问题讨论】:

    标签: iphone performance startup delay splash-screen


    【解决方案1】:

    尝试在不附加调试器的情况下运行它 - 它在启动时所做的事情之一就是等待连接到您的 mac ;)

    如果你只是在没有连接你的 mac 的设备上运行它,你还会看到延迟吗?

    【讨论】:

      【解决方案2】:

      不久前我做了一些实验,发现大多数应用程序的默认启动时间为 3 秒或更长。

      让我很恼火的是,语音备忘录应用程序需要 10 秒才能启动,到那时我已经忘记了我要说什么。我尝试编写一个启动速度更快的程序,通过使用 default.png 并自动开始录制,我得到了一个在 1-1.5 秒内不断启动的记录器。为了获得启动时间,我必须在界面激活之前启动记录器。

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

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

      【讨论】:

      • 谢谢。我觉得你们俩都是对的。这主要是调试器连接后的延迟时间。它会在 2-3 秒内加载,我想现在这已经足够好了。
      猜你喜欢
      • 1970-01-01
      • 2015-06-05
      • 2020-08-09
      • 2021-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多