在http://blog.memsql.com/common-pitfalls-in-writing-lock-free-algorithms/的末尾,David Stolp 显示了无锁堆栈的性能数据,表明无锁版本比受保护的顺序版本慢通过互斥体,即使争用增加。结果很有趣,但有两件事让我担心:
- 充其量,“整体吞吐量”会随着线程数量的增加而降低,然后趋于平稳。总吞吐量不应该随着线程数量的增加而增加吗?
- 在最终图表中,1 个线程的性能值范围约为 35M 到 55M。对于 1 个线程来说,这似乎是一个非常广泛的范围(不能有任何争用)。
我试图找到一种方法就这些问题联系作者,但没有成功,所以我转向 SO 社区,看看结果是否现实。他们有吗?