堆内存管理器
堆内存管理器负责管理堆内存。
堆内存管理器执行以下基本内存操作:
- 分配-由
malloc和calloc执行 - 释放-由
free执行 - 重新分配-由
realloc执行
ILE 运行时提供三个不同的堆内存管理器:
- 缺省内存管理器-通用内存管理器
- 快速池内存管理器-池内存管理器
- 调试内存管理器-用于调试应用程序堆问题的内存管理器
此外,每个内存管理器都有两个不同的版本 -- 单级存储版本和太字节空间版本。 在大多数情况下,这两个版本的行为类似,只是单层商店版本将指针返回到单层商店存储器中,而太字节空间版本将指针返回到太字节空间存储器中。 对于单次分配,单级商店版本限制为略小于 16 MB。 对于已分配的最大堆存储量,单级别存储版本也限制为略小于 4 GB。 太字节空间版本不受这些限制。 有关单层存储器和太字节空间存储器的其他信息,请参阅 ILE 概念 手册。
缺省内存管理器是大多数应用程序的首选,并且是缺省情况下启用的内存管理器。 其他内存管理器具有独特的特性,这些特性在特定情况下可能是有益的。 环境变量可用于指示要使用的堆管理器以及提供堆管理器选项。 在某些情况下,函数还可用于指示要使用的堆管理器。
注: 对于每个激活组,在激活组中调用的第一个堆函数上仅检查一次堆管理器环境变量。 要确保使用环境变量,请在创建激活组之前设置环境变量。