分配器性能评价

动态内存分配器的性能通过两个关键指标来衡量:吞吐量内存利用率。这两个指标常常相互冲突,优秀的分配器需要在它们之间取得平衡。

吞吐量

  • 定义为单位时间内完成的分配和释放请求数量。
  • 理想情况下,分配和释放操作的时间复杂度为常量或与块数量呈亚线性关系。
  • 简单策略(如首次适应)通常比复杂策略(如最佳适应)吞吐量更高。

内存利用率

  • 定义为有效荷载(payload) 大小与分配块大小之比。
  • 分配器对块对齐和元数据(头部等)的需求会降低利用率。
  • 峰值利用率是衡量分配器在程序整个生命周期中内存使用效率的关键指标。
    • 程序请求的有效荷载总和不大于物理内存时,若分配器无法满足请求,说明内存利用率存在问题。
    • 高碎片化(特别是外部碎片)会导致峰值利用率降低。

评价分配器时,通常在给定的分配/释放序列(trace)上测试这两个指标,以得到一个综合的权衡评估。

链接到