
Hat
译者
⚠️ 注意
如果您发现了错误,欢迎 参与贡献。
Slab 是专为同尺寸对象优化的分配器:
rte) — 每条路由更新涉及一个 rte 的创建/销毁rta)💡 译者注
Slab 分配器的想法源自 Solaris 内核 (Jeff Bonwick, 1994),后来被 Linux 内核广泛采用。BIRD 的 Slab 实现简化了内核版本的接口,但保留了核心优势:对象缓存和碎片减少。在全网 BGP 路由场景中,BIRD 可能同时维护数百万条路由条目,传统的 malloc/free 在这种情况下会导致严重的内存碎片和分配延迟。Slab 分配器通过预分配大块内存并从中切割出相同大小的对象,避免了这两个问题。

译者
原文作者: <Ondrej Filip>, <Martin Mares>, <Maria Matejka>, <Ondrej Zajicek> 原文链接: https://bird.network.cz/?get_doc&v=20&f=prog-8.html#ss8.5 原文标题: 8.5 Slabs
遵循协议: CC BY-NC-SA 4.0 / 译者: hat / 翻译时间: 2026-05-01 / 本文链接: https://bird.xmsl.dev/docs/developer-guide/8-5-slabs.html