您如何在macOS下模拟内存不足的情况?

时间:2019-02-05 10:07:19

标签: xcode macos cocoa memory-management appkit

在开发和调试macOS应用程序时,是否可以模拟系统范围的“内存不足”事件或通知?

iOS模拟器具有这样的功能,但我似乎无法在macOS下找到等效的功能。

我有兴趣模拟内存不足的情况,以了解如何清除NSPurgeableDataIOSurface之类的类。

(除了编​​写一个简单的应用程序,该应用程序一直在分配内存...)

2 个答案:

答案 0 :(得分:3)

macOS上用于模拟内存不足情况的工具为memory_pressure(示例):

sudo memory_pressure -S -l critical

上面的命令模拟(-S临界)的内存压力。

  

NAME
       memory_pressure-在工具上施加实际或模拟内存压力的工具        系统。

     

简介
       memory_pressure [-l级别] | [-l percent_free] | [{-p -S级]

     

选项
       -l施加真实或模拟内存压力(如果在旁边指定        系统上的模拟参数),直到生成相应的低内存通知为止。支持的值为“警告”和“严重”。

-l
     

说明
       在系统上施加真实或模拟内存压力的工具

     

另请参见
       vm_stat(1)

答案 1 :(得分:1)

通过代码,您可以使用setrlimit函数来控制应用程序中的系统资源消耗。

或者,ulimit允许控制从终端启动的资源