无效_mm_pause(无效)
下一条指令的执行延迟了实现特定的时间量。该指令不会修改架构状态。这种内在提供了特别显着的性能增益。
也就是说:
while (!acquire_spin_lock()) _mm_pause(); // code snippet 1
速度更快,功耗比
while (!acquire_spin_lock()) continue; // code snippet 2
我可以理解为什么代码片段 1的功耗比代码片段 2低。
我无法理解的是:
为什么代码片段 1比代码片段 2快?