【问题标题】:Slab Allocator Performance ComparisonSlab 分配器性能比较
【发布时间】:2009-07-21 04:22:22
【问题描述】:

我正在考虑在我们的操作系统内核中改进 malloc()。我们目前使用 dlmalloc,但我想要一个自制解决方案,我们可以编辑而无需处理千行文件。

我决定研究平板分配器 (Bonwick94),我相信这是正确的选择。到目前为止,我理解了这个概念并准备实施它。不过,我想在开始工作之前先了解一下性能比较。

假设 malloc 下方的层(vmem、pmem 等)的影响可以忽略不计,那么与 dlmalloc 和其他常见的 malloc 实现(buddy、best-fit/first-fit)相比,slab 分配器如何,杂种)?

【问题讨论】:

    标签: performance memory


    【解决方案1】:

    我相信,slab 分配器至少是 dlmalloc 灵感的一部分,基本轮廓被认为是通用分配器系统的最佳整体权衡组合。通用的“一刀切”分配器——不是双关语——在“最适合”、“下一个适合”等抽象级别上,通常不会削减它;单一的算法太有限了。因此,一个组合,比如说,与一个slab分配器一起使用的最佳匹配,将表现得更令人满意。

    将“子分配器”的层次结构与针对您环境中的使用配置文件定制的行为相结合比听起来更容易 - 例如,为“小”块使用一个分配系统(但可能在您的环境中定义) ,而另一个“大”可以极大地影响速度和碎片性能,我个人的兴趣是使用块“生命周期”特性作为分配器选择的辅助。

    但归根结底,我不相信单一的分配策略;但是您可以从仅 2 或 3 个(最多)子分配器的混合中获得很多性能改进;同时,使用这种方法,您最终可能会得到相同的 1000 行大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 2013-05-19
      • 2015-05-05
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多