Related articles |
---|
[8 earlier articles] |
Re: kickass optimizing compilers? Jeffrey.Kenton@comcast.net (Jeff Kenton) (2004-01-16) |
Re: kickass optimizing compilers? Robert@Knighten.org (Robert Knighten) (2004-01-17) |
Re: kickass optimizing compilers? walter@bytecraft.com (Walter Banks) (2004-01-18) |
Re: kickass optimizing compilers? db@digital.com (dablick) (2004-02-01) |
Re: kickass optimizing compilers? blitz@bad-logic.com (2004-02-04) |
Re: kickass optimizing compilers? gah@ugcs.caltech.edu (glen herrmannsfeldt) (2004-02-08) |
Re: kickass optimizing compilers? vidar@hokstad.name (2004-02-08) |
Re: kickass optimizing compilers? vbdis@aol.com (2004-02-12) |
From: | vidar@hokstad.name (Vidar Hokstad) |
Newsgroups: | comp.compilers |
Date: | 8 Feb 2004 22:07:20 -0500 |
Organization: | http://groups.google.com |
References: | 04-01-044 04-01-082 04-02-010 04-02-068 |
Keywords: | optimize, assembler |
Posted-Date: | 08 Feb 2004 22:07:20 EST |
blitz@bad-logic.com (Blitz) wrote
> "dablick" <db@digital.com> wrote
>But
> the innerloops of power demanding apps should always be written by
> hand. There is no way a compiler can come close a good asm coder until
> the day computers are able to think for themselfs the way humans do.
I agree that a compiler can't come close to a good asm coder that has
sufficient time, the chance to profile the application and feed that
information back into his code changes, and significant experience. I
do NOT however agree that the inner loops of power demanding apps
should always be written by hand. In fact, I'd say it should be a VERY
rare exception.
The first and foremost reason is this: It is a rare exception to find
someone good enough to make it worth it without introducing tons of
risks, and those people tend to come at a price tag - when weighing
the cost of allocating a software engineer to hand optimizing assembly
code against simply buying another server, buying another server often
wins.
I'm aware there are cases where this isn't the case, such as when hand
optimizing the code can mean the difference of a few dollars of
hardware components in consumer hardware where the production volume
is measured in hundreds of thousands, but I'd claim cases where the
performance benefit of going to assembly will be significant enough to
allow hardware cost savings are in the minority (for my part, for
years I've been working on systems where all that mattered was
optimizing IO bandwidth, as we'd never max out the CPUs - while we
developed in C++ we could easily have gone to an interpreted language
even without a noticeable slow down as our applications were almost
always waiting on network or disk traffic)
The second issue is risk and maintainability. I simply don't want
complicated code if I can have simple code, as long as any slow down
caused by the simplicity isn't too severe. The cost and business risks
of maintaining code that few people know how to fix is simply very
rarely worth it.
Vidar Hokstad
Return to the
comp.compilers page.
Search the
comp.compilers archives again.