C 多线程实验:仅给计数器加 64 字节填充,速度即提升 3-4 倍
cneuralnetwork · x · 2026-10-23
作者在 C 语言多线程实验中发现:两个线程各自递增独立计数器 2000 万次,仅在两个计数器之间加了一段内存填充,性能就提升约 3-4 倍。
原因是伪共享(false sharing):CPU 的缓存一致性以缓存行为单位(通常 64 字节)而非单个变量维护。即使线程改的是不同变量,只要落在同一缓存行,就会互相「打架」。把变量在内存里分开后,大部分开销即被消除。截图中的五轮测试显示 padded 版本稳定在 2.7x-4.6x 加速,总量校验确认两边计数结果完全一致。
「Infra」频道最新
- Lam Research Q3 系统营收环比涨 35%,2027 设备市场看超 2000 亿美元 — BenBajarin · 2026-10-23
- Hugging Face Hub 上线 OpenUSD,NVIDIA 入驻 2500+ 仿真资产 — mishig25 · 2026-10-23
- 一个节点 fsync() 撒谎即可让 Raft 集群丢数据 — tianyin_xu · 2026-10-23
- SGLang 携手 AWS 推出 Trainium 插件 beta,支持 Trainium2/3 推理与 RL — ying11231 · 2026-10-23
- Thorsten Ball 演示在 exe.dev VM 上用 Docker 快速拉起新 orb 机器 — davidcrawshaw · 2026-10-23
- Turso MVCC 引擎实测:p99.9 事务延迟 2.4ms,较 SQLite 快 500 倍 — glcst · 2026-10-23