Herb Sutter wrote The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software, an excellent article that all programmers should read, even though it won’t apply to Palm development for some time.

However, I do have a couple problems with the article.

  1. While his graph supports the thesis the graph is not supported by the data. If you look closely, you’ll note that the dark blue dots — actual chips — are still proceeding upwards rapidly, just not as rapidly as before. His “trend” line doesn’t seem to have much relationship to the data — he’s continued the old exponential trend a bit past data in order to get such a sharp level off.
  2. He barely touches on the biggest performance issue of all. He casually mentions “Make a CPU ten times as fast, and software will usually find ten times as much to do (or, in some cases, will feel at liberty to do it ten times less efficiently),” then ignores it until near the end of the article. Sure, it’s not the topic of the article, but I can’t help but think algorithms and tuning what you’ve already got is the elephant in the living room of performance.

Don’t get me wrong, I actually agree with the article. I just think he should have drawn his graph differently — or omitted it entirely if it didn’t support his data, and he should have drawn more attention to the elephant. ARMlets are not the solution to every problem. Frequently, you need to examine the algorithm you’re using.

Leave a Reply