我正在使用GCD来获取内存压力通知.
GCD文档描述了一些常量:
DISPATCH_MEMORYPRESSURE_WARN
系统内存压力状况处于警告阶段.应用程序应该释放他们现在不需要的内存.
DISPATCH_MEMORYPRESSURE_CRITICAL
系统内存压力条件处于关键阶段.应用程序应尽可能多地释放内存.
似乎逻辑上我应该释放未使用的内存.但是,在其他地方(手册页和源代码),我发现此注释与这些常量有关:
升高的内存压力是系统范围的条件,注册此源的应用程序应通过改变其未来的内存使用行为来做出反应,例如通过减少新启动的操作的高速缓存大小,直到内存压力恢复正常.
但是,当系统系统内存压力进入升高状态时,应用程序不应遍历并丢弃过去操作的现有高速缓存,因为这可能会触发VM操作,从而进一步加剧系统内存压力.
这让我很困惑.我应该释放内存,还是应该停止分配新内存?
memory memory-management grand-central-dispatch memory-pressure ios