And*_*man 5 macos memory-management mmap
我正在尝试在 Mac(OSX 10.12.6,Sierra)上使用
void *got = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_ANON | MAP_PRIVATE, VM_FLAGS_SUPERPAGE_SIZE_2MB, 0);
Run Code Online (Sandbox Code Playgroud)
但总的来说我不能分配一个非常大的区域(我想要 128MB,机器有 16GB RAM)。我认为这是因为我的 Mac 已经运行了一段时间并且内存变得碎片化 - 即没有 128MB 的连续区域可用。我有时可以得到 16MB,但很少有比这更大的。
在调用 mmap() 之前,有没有办法告诉操作系统对 RAM 进行碎片整理?有没有办法用 mach_vm_allocate() 来做到这一点,首先会导致碎片整理?
谢谢。
| 归档时间: |
|
| 查看次数: |
401 次 |
| 最近记录: |