在开发和调试应用程序的MacOS,是有办法来模拟一个全系统的“内存不足”事件或通知?
iOS的模拟器具有这样的功能,但我似乎无法找出在MacOS下的等价物。
我感兴趣的是模拟内存不足的情况,看如何类,如NSPurgeableData
和IOSurface
处理被清除。
(除了编写一个简单的应用程序,只是不断分配内存...)
上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)