Performance Anti-Patterns

This article, by Sun's Bart Smaalders, describes ten common performance mistakes software developers make. One example:

During Solaris 10 development, Solaris engineers fixed a long list of performance problems across the kernel and user libraries. Toward the end of the release, [they] spent some time reviewing just what had been improved and by how much...and what was the underlying cause of the performance problem. Interestingly enough, all the really big improvements (above, say, 200 percent) resulted from changes in algorithms. Over and over again, all the other performance fixes using specialized SIMD processor instructions such as SSE2 or VIS, inserting memory prefetch instructions, cycle shaving...paled in significance compared with simply going back and rethinking the locking algorithms and/or data structures.