Charilaos Kalogirou on #AltDevBlogADay: "Optimizing for the instruction cache"
The basic advice is: When you write an algorithm that iterates over data and your code branches at some point depending on the values of your current data point (say by a virtual member function call), then the CPU gets frequent cache misses on the instruction cache. If you organize your data (e.g., by sorting or keeping different lists), you can spare your CPU these misses.