在Mac OS X中是否有相当于mallopt()的东西?

时间:2016-03-09 22:56:10

标签: linux macos memory-management malloc

Linux通过mallopt()提供内存分配的自定义选项。在OS X(BSD)上是否有类似的自定义内存分配选项?

1 个答案:

答案 0 :(得分:1)

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)" goal"来自" zone"的字节数。如果"目标"被传递为   零,malloc子系统将尝试实现最大压力   在"区"中缓解如果" zone"传递为NULL,检查所有区域   为减压机会。 malloc_zone_pressure_relief()   返回释放的字节数。

<强> vm_allocate()

  

在指定任务的地址中分配虚拟内存区域   空间。新区域始终为零填充。

OS X Memory Usage Performance Guidelines