有谁能指出使用宽松原子操作(特别是memory_order_release和memory_order_acquire,但也包括memory_order_consume和memory_order_relaxed)与默认memory_order_seq_cst进行C11/C++11代码性能比较的基准测试结果?所有的架构都很有趣。提前谢谢。
发布于 2014-04-13 15:27:03
我在ARMv7上做了一些基准测试,参见https://github.com/reinhrst/ARMBarriers的报告,我在EuroLLVM演讲的幻灯片,以及我使用的seqlock代码。
小故事:在seqlock代码中,获取/释放函数比顺序一致的版本快大约40%。

发布于 2014-03-28 19:00:29
这可能不是最好的解决方案,但到目前为止,我一直在我的一个项目中使用CDSChecker进行一些基准测试。我还没有在完整的程序中使用它,但更多的只是在独立的单元上使用。
发布于 2015-06-28 22:24:22
对于特定的代码块(工作窃取出队),我发现了一个非常好的paper,它对使用弱原子的C11版本进行了基准测试,仅使用sc原子,手工优化的汇编,以及使用完全放松的原子的不正确版本。(巧合的是,前面提到的CDSChecker后来在C11版本中发现了一个错误。)类似的例子也很受欢迎。
https://stackoverflow.com/questions/19752496
复制相似问题