Linux 提供了通过 mallopt()
分配内存的自定义选项。在 OS X (BSD) 上自定义内存分配是否有类似的选项?
OS X曾经包含mallopt()
功能,尽管现在它释放内存的方式与过去不同,因此您需要在10.7及更高版本中找到替代方案。目前还不清楚您要查找的特定mallopt()
内存分配选项的类型,尽管大多数等效函数都可以在以下标头中找到:
/usr/include/malloc/malloc.h
/usr/include/mach/vm_map.h
您可能会发现在功能上与mallopts()
相似的函数:
malloc_zone_pressure_relief()
通知 malloc 子系统进程处于内存压力之下 并且子系统应尽最大努力释放 (即munmap()-ing)来自"区域"的"目标"字节。如果"目标"被传递为 零,Malloc 子系统将尝试达到最大压力 "区域"中的浮雕。如果将"区域"作为 NULL 传递,则检查所有区域 用于泄压机会。malloc_zone_pressure_relief() 返回释放的字节数。
vm_allocate()
在指定任务的地址中分配虚拟内存区域 空间。 新区域始终为零填充。
↳ OS X 内存使用性能指南