【问题标题】:What's the difference between cold launch, warm launch?冷启动和热启动有什么区别?
【发布时间】:2021-12-05 22:48:33
【问题描述】:

这些是虚构的吗?冷是否意味着应用程序被杀死。温暖意味着应用程序在内存中?

【问题讨论】:

    标签: ios reboot application-lifecycle app-startup ios-app-suspended-state


    【解决方案1】:

    来自docs on Reducing Your App’s Launch Time

    例如,在 iOS 上,如果您滑回主屏幕并立即重新进入应用程序,这可能是最快的激活方式。它也可能是一份简历。当系统需要启动时,通常称为“热启动”。

    相反,如果用户刚刚玩了一个内存密集型游戏,然后他们重新进入您的应用,例如,它可能会比您的平均激活速度慢得多。在 iOS 上,您的应用程序通常会从内存中逐出以允许前台应用程序获得更多内存。你的应用程序依赖于启动的框架和守护进程可能还需要重新启动和从磁盘分页。这种情况,或在启动后立即启动,通常称为“冷启动”。

    将冷热发射视为一个光谱。在实际使用中,您的用户将体验到基于设备状态的一系列性能。这就是为什么在各种条件下进行测试对于预测您的真实世界表现至关重要的原因。

    来自WWDC

    那么,让我们来看看我之前谈到的那些发布,有冷发布,有热发布,还有一些东西通常被称为发布,但不完全是发布,简历。

    重新启动后或您的应用很长时间未启动时会发生冷启动。 为了启动应用程序,我们需要将其从磁盘导入内存,启动支持您的应用程序的系统端服务,然后生成您的进程。 如您所料,这可能需要一些时间,但幸运的是,一旦发生一次,您就会体验到热烈的发布。在这种情况下,您的应用仍然需要生成,但我们已经将您的应用放入内存并启动了其中一些系统端服务。所以,这会更快一点,更一致一点。

    最后,还有那份简历。当用户从主屏幕或应用切换器重新进入您的应用时,就会发生这种情况。如您所知,该应用程序此时已经启动,因此速度会非常快。 您需要记住的是,在进行测量时不要将简历与发布混淆

    tldr:

    每次点击应用图标时,它都可能是以下 4 种状态之一:

    • 应用长时间未启动或重启后才启动
    • 应用程序之前已启动并被终止。但又发动了。所以有些系统服务还在内存中。
    • 应用程序之前已启动,但已暂停以减少内存,它的过程仍在进行中。点击应用图标不会触发应用启动
    • 应用程序已启动,但仅后台。它还在记忆中。例如您在听音乐或位置跟踪时将应用程序置于后台。因此,在应用程序图标上点击应用程序,不会触发另一个应用程序启动。 (上述文档中没有提到这种情况,但值得一提)

    【讨论】:

      猜你喜欢
      • 2010-09-12
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 2020-08-30
      • 2021-06-21
      • 2020-09-10
      • 2020-03-18
      • 2022-01-22
      相关资源
      最近更新 更多