例如,Linuxvm.overcommit_memory
默认启用该功能。Windows 没有内存过量使用功能。MacOS 有吗?它可以配置吗?默认设置是什么?
答案1
我已经在我的 MacOS 上测试过了,可以正常工作。我使用的代码来自问题。系统允许我分配超过 40Gb 的内存,但板载 RAM 仅为 16Gb,已使用的交换空间为 6Gb(上图为 OOM-killer 执行之前的分配过程)。
我的内核版本是:
Darwin AT-MacBook-Pro-2.local 16.5.0 Darwin Kernel Version 16.5.0: Fri Mar 3 16:52:33 PST 2017; root:xnu-3789.51.2~3/RELEASE_X86_64 x86_64
我没有找到配置过量使用的可能性,但看起来默认情况下它是 2。但我们应该记住,MacOS 有动态交换,它压缩内存,所以我的假设可能是错误的。