【发布时间】:2017-03-02 02:49:25
【问题描述】:
我用 C++ 编程并使用 CAS 操作进行线程同步。
我使用 Vtune 分析了我的程序,发现大部分时间都花在了 CAS 操作上。
我看了一下汇编代码。
分析结果显示,大部分时间都花在了“movq %rax, (%rsi)”上,而不是“lock cmpxchgq %rcx, (%rdi)”上。
'movq %rax, (%rsi)' 操作与 CAS 操作有什么关系? 此操作正在移动哪些数据?
【问题讨论】:
-
请在此处以纯文本形式发布代码、错误或文本输出,而不是难以阅读、无法复制粘贴以帮助测试代码或在答案中使用的图像,并且是对使用屏幕阅读器的人怀有敌意。您可以编辑问题以在问题正文中添加代码。使用
{}按钮来格式化任何代码块,或者使用四个空格缩进以获得相同的效果。
标签: c++ profiling intel-vtune