
Hat
译者
⚠️ 注意
如果您发现了错误,欢迎 参与贡献。
线性内存池 (linpool) 为短暂生命周期数据优化:
| 特性 | 说明 |
|---|---|
| 快速分配 | 仅移动内部指针,无碎片化搜索 |
| 整体释放 | 一次释放整个池(lp_flush() 保留结构,rfree() 销毁) |
| 无单块释放 | 不能单独释放某个分配,只能整体清空 |
f_run() 调用使用临时 linpool)💡 译者注
线性池的性能优势来自其极简的设计——内部仅维护一个连续的内存区域和一个偏移指针。每次分配只是增加偏移量并返回地址。无需空闲链表、无需碎片合并、无需搜索合适大小的块。代价是无法单独释放某个分配。这种"用完即弃"的设计恰好匹配了路由处理中大量存在的事务性操作:一次处理成千上万条路由,处理完毕后所有临时数据同时失效。

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