C 多线程实验:仅给计数器加 64 字节填充,速度即提升 3-4 倍

cneuralnetwork · x · 2026-10-23

作者在 C 语言多线程实验中发现:两个线程各自递增独立计数器 2000 万次,仅在两个计数器之间加了一段内存填充,性能就提升约 3-4 倍。

原因是伪共享(false sharing):CPU 的缓存一致性以缓存行为单位(通常 64 字节)而非单个变量维护。即使线程改的是不同变量,只要落在同一缓存行,就会互相「打架」。把变量在内存里分开后,大部分开销即被消除。截图中的五轮测试显示 padded 版本稳定在 2.7x-4.6x 加速,总量校验确认两边计数结果完全一致。

原文链接 →

「Infra」频道最新

更多「Infra」频道 AI 资讯 →