Yes, but be careful with this if your algorithms knowledge comes from a traditional algorithms course.  These are often taught as if computational complexity was the only concern.  Algorithms that minimize <i>space</i> complexity are often more of an issue.<p>So while the choice of algorithm is a large issue, one must be careful to select an algorithm that makes the appropriate space vs. computation tradeoff.  That knowledge is often guided by an awareness of where the systems bottlenecks are.<p>Once you've chosen the correct algorithm and you're down to optimizing code, which is what this article discusses, understanding cache effects is critical and this article provides a nice view of the basics.  The usual rules about not doing optimization unless one needs to applies, but I don't see why that always merits an algorithms junkie popping out of the woodwork to essentially say the same thing everyone always says: premature optimization is dumb.