Trading CPU for Money

The deeper I dig into each generation of tools (VS 2005 at the moment) the more I see the trade off of CPU for developer time.  It used to be that the programmer would go to extremes to maximize the performance of their code and that the tools were written in much the same way.  Over the years this trend has reversed and has really accelerated the other way.  When you hit enter in VS 2005 it is doing a background compile which allows it to catch typos and other errors in much the same way that Word does.  This is great if you want to be productive, but I often hear lamentations that performance is being tossed.  When I look at modern CPU power, I have to admit that I think it is high time we made reasonable tradeoffs.  I see more and more servers that are barely touching CPU usage in double digit percentages as the march of Moore’s law overtakes our consumption of the resulting CPU cycles.

I am not advocating wasting resources, but it I have to write a small application for a simple task then I am all for getting it done in half the time in exchange for it using more memory or even if it were to run 5% slower than writing it with older tools.  The truth is that as applications evolve and add features they almost always run slower in most circumstances than they used to, but only if you stick with the same hardware.

For myself I say keep the productivity gains coming in the tools and as long as it doesn’t get caprious, I won’t complain.

One thought on “Trading CPU for Money”

  1. Hey Patrick,

    If you follow Agile metholodologies, I think it’s always best to code for maximum clarity from the outset because you know you’ll test for performance bottlenecks later on, regardless of the CPU your code will ultimately run on.

    It’s easier to identify, fix, and refactor performance issues in clear code than in code that was optimized from the beginning, especially if your wrote unit tests. Given the "80/20" rule (or whatever the ratio, I can never remember), most of the code that people spent optimizing probably didn’t need it in the first place.

    This is off topic, but the main reaosn I wrote is because your "Home" link under Places To Go is the url "http://www.patrickhynds.com/www.patrickhynds.com".

Comments are closed.