Your bottleneck is you, or, why I’ve stopped worrying about performance

Provocative headline, no? Let me explain.

Like Jeff Atwood, I consider end-user performance to be a feature. Pages should snap. It sends a very positive signal to customers, IMHO. And the site should snap with 10 or 10,000 users.

That said, as a developer I am learning to worry less about the little things when it comes to performance.

For example, I went to a SQL Server talk where they worried about how many disk spindles to split the load across. And I read others worrying about whether String or StringBuilder will concatenate faster, and under what circumstances.

And that’s all well-and-good.

But I’ve found that even on relatively low-end hardware, reasonable code is plenty fast. And by reasonable, I mean code that avoids the most obvious pitfalls like the n+1 problem.

Beyond that, I prefer to focus on the logic. That is, I treat languages more declaratively as time goes on. I spend more time focusing on what and less time worrying about the how that happens under the covers.

We come far enough that hardware costs are trivial for all but the top 1% of sites. And modern compilers do a great job of turning high-level languages into fast machine code.

In all likelihood, your bottleneck is not your tools. Your bottleneck is your time.

So take advantage of modern platforms, reclaim your time, and focus on your customers.

Published September 16, 2009