← 返回索引 · 2026-02-20 · 0014

交易系统中的伪共享(False Sharing)陷阱与内核级优化剖析(摘要)

原文首发于 TechNova: 交易系统中的伪共享(False Sharing)陷阱与内核级优化剖析

承接页(解决方案):https://technologynova.org/solution/

TL;DR

1. 为什么“逻辑上独立”的计数器也会互相拖慢?

交易系统里常见的统计结构(买单数、卖单数、成交额等)看起来互不相关,线程 A/B/C 各写各的。 但 CPU 缓存是按缓存行搬运数据的:你写 8 字节,CPU 可能在缓存里拿的是 64 字节。 如果两个线程写的字段恰好位于同一缓存行,那么每次写入都可能触发 MESI 的 RFO(Request For Ownership), 让其他核的该行副本失效,缓存行被迫在核之间转移——这就是伪共享的成本来源。

关键要点 / 常见坑(工程视角)

2. 定位路径:先用数据证明“是它”,再开刀

3. 解决方案:从“对齐填充”到“数据结构重构”

目标只有一个:让不同线程高频写的变量不要共享同一缓存行。 常见落地方式可按侵入性从低到高排列:

4. 适用场景:哪些团队值得立刻排查伪共享


承接页 CTA

伪共享属于“代码看不出来、压测才暴露”的硬件层性能坑。 如果你正在做交易系统的性能压榨(撮合/风控/数据管线/低延迟架构),建议把缓存行布局、并发写隔离、基准测试体系一起纳入架构评审。 可以从 TechNova 的交易系统解决方案页了解全链路落地方式: https://technologynova.org/solution/

原文链接:
https://technologynova.org/…/