gpt4 book ai didi

memory-management - iPhone 操作系统内存警告。不同级别意味着什么?

转载 作者:行者123 更新时间:2023-12-03 05:06:11 25 4
gpt4 key购买 nike

关于 iPhone OS 设备上管理内存的黑魔法:不同级别的内存警告意味着什么。 1级? 2级?表盘转到 11 了吗?

背景:经过广泛的内存压力测试 - 包括在播放 iPod 音乐播放器应用程序的同时运行我的 iPad 应用程序,我倾向于忽略我收到的随机但不常见的内存警告。我的应用从不崩溃。曾经。我的应用程序没有泄漏。而且,嗯,MEMS 警告似乎并不重要。

谢谢,
道格

最佳答案

SpringBoard 记录内存级别警告。作为应用程序开发人员,您不需要关心它。只需响应 -{application}didReceiveMemoryWarning 就足够了。

<小时/>

警告有 4 个级别(0 到 3)。这些是从内核内存观察器设置的,可以通过 not-so-public function OSMemoryNotificationCurrentLevel() 获得.

typedef enum {
OSMemoryNotificationLevelAny = -1,
OSMemoryNotificationLevelNormal = 0,
OSMemoryNotificationLevelWarning = 1,
OSMemoryNotificationLevelUrgent = 2,
OSMemoryNotificationLevelCritical = 3
} OSMemoryNotificationLevel;

没有记录如何触发级别。 SpringBoard 配置为在每个内存级别执行以下操作:

  1. 警告(非正常)- 重新启动或延迟自动重新启动非必要的后台应用程序,例如邮件。
  2. 紧急 - 退出所有后台应用程序,例如Safari 和 iPod。
  3. 严重及其他 — 内核将接管,可能会杀死 SpringBoard 甚至重新启动。

终止事件应用程序 (jetsam) 不是由 SpringBoard 处理,而是由 launchd 处理。

关于memory-management - iPhone 操作系统内存警告。不同级别意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2915247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com