title: Why can _mm_pause() significantly improve performance?
body: <p>According to <a href="http://www.info.univ-angers.fr/pub/richer/ens/l3info/ao/intel_intrinsics.pdf" rel="nofollow noreferrer">Intel's manual (on page 112)</a>:</p>
  
  <blockquote>
    <p>void _mm_pause(void)</p>
    
    <p>The execution of the next instruction is delayed an implementation
    specific amount of time. The instruction does not modify the
    architectural state. This intrinsic provides especially significant
    performance gain.</p>
  </blockquote>
  
  <p>That is to say:</p>
  
  <p><code>while (!acquire_spin_lock()) _mm_pause(); // code snippet 1</code></p>
  
  <p>is faster and has lower power consumption than</p>
  
  <p><code>while (!acquire_spin_lock()) continue; // code snippet 2</code></p>
  
  <p>I can understand why <strong><em>code snippet 1</em></strong> has lower power consumption than <strong><em>code snippet 2</em></strong>.</p>
  
  <p>What I cannot understand is:</p>
  
  <p><strong>Why is <em>code snippet 1</em> faster than <em>code snippet 2</em>?</strong></p>