【发布时间】:2016-06-09 19:42:03
【问题描述】:
我正在使用 GCD 来获取内存压力通知。
GCD documentation 描述了一些常量,如下所示:
DISPATCH_MEMORYPRESSURE_WARN
系统内存压力情况处于警告阶段。应用 应该释放他们现在不需要的内存。
DISPATCH_MEMORYPRESSURE_CRITICAL
系统内存压力情况处于临界阶段。应用 应该释放尽可能多的内存。
我应该释放未使用的内存似乎是合乎逻辑的。但是,在其他地方(man pages 和 source code)我发现这个注释与这些常量有关:
内存压力升高是一个系统范围的条件,应用程序 为此来源注册应通过改变他们的未来作出反应 内存使用行为,例如通过减少新启动的缓存大小 操作直到内存压力恢复正常。
但是,应用程序不应遍历和丢弃现有缓存 系统系统内存压力进入时的过去操作 提升的状态,因为这可能会触发 VM 操作 会进一步加重系统内存压力。
这让我很困惑。那么我应该释放内存,还是应该停止分配新内存?
【问题讨论】:
标签: ios memory memory-management grand-central-dispatch memory-pressure