I/O bound? Not sure // Re: Proebsting's Law

Paul Makepeace london.pm.org at paulm.com
Thu Dec 15 10:26:38 GMT 2005

Je 2005-12-14 20:10:38 +0000, Dominic Mitchell skribis:
> On Wed, Dec 14, 2005 at 12:00:23PM +0000, Paul Makepeace wrote:
> > I bet there's *much* more than 4% difference[1]. Ten years ago I was
> > futzing around with assembly code generated for sparcs, comparing various
> > optimizations. The differences were orders of *magnitude* not percentage
> > points. In fact some of the optimizations appeared to me so clever I
> > could barely follow the assembly language despite it being only about six
> > lines of math & pointer arithmetic in C.
> This is all very well, but the majority of programs are i/o bound, not
> CPU bound.

While in principle I agree, I do wonder how many programs that we're
using & writing actually are i/o bound, to the extent the CPU
speed/compiler efficacy is unimportant.

SpamAssassin (and similar products like blog blacklisting software) for
example is a good example of an app that is definitely CPU bound. They've
done a lot on optimising regexes and flow control.

Who too hasn't experienced an annoying lag waiting for a massive mod_perl
site to restart? My laptop for example is no longer useful for mod_perl
development as its CPU (Pentium 266) is simply too slow. (For whatever
reason I've not looked closely into A::StatINC and A::Reload have never
worked reliably for me.)

One of the servers I have to work on has a slowish CPU and we're being
forced into algorithmic optimisations before completing work on API and
other traditional design-level work because it's CPU bound and interfering
with the edit/test/debug cycle. If it were a couple of times faster it
would be OK.

You could argue these are I/O at the main RAM level but that's still in
the remit of compiler design.

A different angle: As an analogue to the effect where users can perceive
an apparently great difference between interfaces & applications that
respond in 100ms versus in 400ms (or so) I definitely do notice the
difference working on servers that are fast versus average. It's possibly
more of a "feel" thing, but it's there, and real.

> So the optimisation is useful, but less important.  Unless
> you're doing mad simulations or calculating pi or searching for aliens
> or something.

In summary, I don't think you have to go to mathematical extremes to
experience the effect of a slow CPU/poor use of it.


Paul Makepeace .............................. http://paulm.com/inchoate/

"What is nana? A goats beard."
   -- http://paulm.com/toys/surrealism/

More information about the london.pm mailing list