> > > Even in C, with a good compiler, you're better off with machine
> > > optimization. ......
> > Kernighan and Plauger, way back in _1978_ wrote, "Don't sacrifice clarity
> > for small gains in 'efficiency.'....Let your compiler do the simple
> > optimizations."
> Or, to put it another way (I don;t recall who said it originally),
> "It's easier to make a correct program fast than to make a fast
> program correct."
But neither is easy. The best thing is to plan for performance and
correctness from the beginning. If you don't think carefully
about the *big* issues relating to performance (I agree that
"micro" optimization is often misguided), especially
in the area of careful storage management, I defy anyone to truly
achieve competitive performance.
Interestingly, even when there is a garbage collector, storage
management planning is still critical (you might even say *more*
critical) if good performance is going to be achieved.
The notion that software engineering does not involve
engineering for performance is definitely specious in
my view. In the same way we gag at the thought of "debugging"
an algorithm into existence, we should gag at the notion of
"debugging" a program into high performance.
> Mike Feldman