堆内存管理器

堆内存管理器负责管理堆内存。

堆内存管理器执行以下基本内存操作:
  • 分配-由 malloccalloc 执行
  • 释放-由 free 执行
  • 重新分配-由 realloc 执行

ILE 运行时提供三个不同的堆内存管理器:

  • 缺省内存管理器-通用内存管理器
  • 快速池内存管理器-池内存管理器
  • 调试内存管理器-用于调试应用程序堆问题的内存管理器

此外,每个内存管理器都有两个不同的版本 -- 单级存储版本和太字节空间版本。 在大多数情况下,这两个版本的行为类似,只是单层商店版本将指针返回到单层商店存储器中,而太字节空间版本将指针返回到太字节空间存储器中。 对于单次分配,单级商店版本限制为略小于 16 MB。 对于已分配的最大堆存储量,单级别存储版本也限制为略小于 4 GB。 太字节空间版本不受这些限制。 有关单层存储器和太字节空间存储器的其他信息,请参阅 ILE 概念 手册。

缺省内存管理器是大多数应用程序的首选,并且是缺省情况下启用的内存管理器。 其他内存管理器具有独特的特性,这些特性在特定情况下可能是有益的。 环境变量可用于指示要使用的堆管理器以及提供堆管理器选项。 在某些情况下,函数还可用于指示要使用的堆管理器。

注: 对于每个激活组,在激活组中调用的第一个堆函数上仅检查一次堆管理器环境变量。 要确保使用环境变量,请在创建激活组之前设置环境变量。