对象池在嵌入式热路径上的三个隐性成本

对象池 (mutex + queue + shared_ptr) 比裸 malloc 快约 60%,是减少堆分配的第一步改进。但在 ARM 嵌入式热路径上,mutex futex 开销、shared_ptr 原子引用计数、queue 动态增长三项隐性成本使其无法满足零堆分配和确定性延迟的要求。本文从一个真实的串口数据解析场景出发,量化这三项成本,并展示预分配环形缓冲和 variant 值语义如何彻底消除它们。

February 17, 2026 · 2 min · 397 words · map[name:DeguiLiu]

SPSC 无锁环形缓冲区设计剖析: 从原理到每一行代码的工程抉择

深度剖析 liudegui/ringbuffer 的 SPSC 无锁环形缓冲区实现。逐项解析缓存行对齐、2 的幂位掩码、wait-free 无重试设计、精确 acquire-release 内存序、FakeTSO 单核模式、批量 memcpy、ProducerClear 所有权修正等 12 项设计决策,每项标注 为什么这样做 和底层硬件原理。

February 16, 2026 · 10 min · 1955 words · map[name:DeguiLiu]