你怎么模拟的MacOS下内存不足的情况?

问题描述 投票:3回答:2

在开发和调试应用程序的MacOS,是有办法来模拟一个全系统的“内存不足”事件或通知?

iOS的模拟器具有这样的功能,但我似乎无法找出在MacOS下的等价物。

我感兴趣的是模拟内存不足的情况,看如何类,如NSPurgeableDataIOSurface处理被清除。

(除了编写一个简单的应用程序,只是不断分配内存...)

xcode macos cocoa memory-management appkit
2个回答
3
投票

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

sudo memory_pressure -S -l critical

以上会模拟(-S)命令临界水平(-l关键的)的存储器中的压力。

名称 memory_pressure - 工具应用实际或模拟系统的内存压力。

概要 memory_pressure [-l级别] | [-p percent_free] | [-S -l水平]

OPTIONS -l应用真实或模拟存储器压力的系统,直到对应于产生低存储器的通知(如果指定的旁边模拟参数)。支持的值是“警告”和“关键”。

 -p <percent_free> Allocate memory till the available memory in the system
 is <percent_free> of total memory. If the percentage of available memory
 to total memory on the system drops, the tool will free memory till
 either the desired percentage is achieved or it runs out of memory to
 free.

 -S Simulate memory pressure on the system by placing it artificially for
 <sleep_seconds> duration at the "warn" or "critical" level.

 -s <sleep_seconds> Duration to wait before allocating or freeing memory
 if applying real pressure. In case of simulating memory pressure, this is
 the duration the system will be maintained at an artifical memory level.

描述 这种工具可以运用真实或模拟系统的内存压力

也可以看看 vm_stat(1)


1
投票

从代码,你可以使用setrlimit功能来控制系统资源的消耗你的应用程序。

另外,ulimit允许从终端启动的资源控制

© www.soinside.com 2019 - 2024. All rights reserved.