环境变量

下表描述可用于启用和配置堆内存管理器的环境变量。

可以使用以下环境变量来指示应该使用哪个内存管理器:

表 1. 用于指示要使用的内存管理器的环境变量
环境变量 描述
qibm_malloc_type DEFAULT 指示将使用缺省内存管理器。
快速池 指示要使用快速池内存管理器。
调试 指示要使用调试内存管理器。

如果未设置 QIBM_MALLOC_TYPE 环境变量,或者如果该环境变量的值与上述值之一不同,那么将使用缺省内存管理器,并且将忽略以下所有环境变量。

如果 QIBM_MALLOC_TYPE 设置为 DEFAULT ,那么可以使用以下环境变量来指示缺省内存管理器选项。 否则,将忽略环境变量。

表 2。 缺省内存管理器选项
环境变量 描述
qibm_malloc_default_options MALLOC_INIT: N 已分配内存的每个字节都将初始化为此值。
FREE_INIT: N 已释放内存的每个字节都将初始化为该值。
CHUNK_REUSE_MAXSZ: N 大于或等于此值的空块将立即返回给系统。

缺省情况下,既不会初始化已分配的内存,也不会初始化释放的内存,并且内存管理器会保留空块以供复用。

如果 QIBM_MALLOC_TYPE 设置为 QUICKPOOL ,那么可以使用以下环境变量来指示快速池内存管理器选项。 否则,将忽略环境变量。

表 3. 快速池内存管理器选项
环境变量 描述
qibm_malloc_quickpool_options 池: (C1 E1) (C2 E2) ... ( Cn En ) 定义每个池的单元大小和扩展数据块单元计数。 (Cn En) 对的数目指示池的数目。
MALLOC_INIT: N 已分配内存的每个字节都将初始化为此值。
FREE_INIT: N 已释放内存的每个字节都将初始化为该值。
COLLECT_STATS 指示在应用程序结束时收集统计信息并生成报告。

缺省情况下,既不会初始化已分配的内存,也不会初始化已释放的内存。 缺省行为是不收集统计信息。 如果未指定单元大小和扩展数据块单元计数,或者未正确指定单元大小和扩展数据块单元计数,那么将使用缺省配置值,如本节中先前所述。

如果 QIBM_MALLOC_TYPE 设置为 DEBUG ,那么可以使用以下环境变量来指示调试内存管理器选项。 否则,将忽略环境变量。

表 4. 调试内存管理器选项
环境变量 描述
qibm_malloc_debug_options MALLOC_INIT: N 已分配内存的每个字节都将初始化为此值。
FREE_INIT: N 已释放内存的每个字节都将初始化为该值。

缺省情况下,既不会初始化已分配的内存,也不会初始化已释放的内存。