title: Why is a CPU branch instruction slow?
body: <p>Since I started programming, I have read in every place to avoid wasteful branches at all costs.</p>
  
  <p>That's fine, although none of the articles explained why I should do this. What exactly happens when the <a href="http://en.wikipedia.org/wiki/Central_processing_unit" rel="noreferrer">CPU</a> decodes a branch instruction and decides to do a jump? And what is the "thing" that makes it slower than other instructions (like addition)?</p>