On 30/12/11 9:13 AM, Walter Bright wrote:
And if one really wants to force an inline, one can do things like the C
memcpy using the preprocessor, or string mixins in D, or even cut&paste.
If you need to do that in more than a couple places in the code,
something else is wrong (that old saw about only a tiny percentage of
the code being a bottleneck is true).

When you are writing really performance sensitive code, that old adage is certainly *not* true.

It only happens in practice when you don't care that much about performance. When you really care, you've already optimised those hot spots, so what you end up with is a completely flat profile: no part of the program is the bottleneck, but the whole thing is.

At that point, you're likely suffering a death from a thousand cuts: no single part of your program is the bottleneck; your poor performance is just the sum total of a bunch of small performance penalties here and there.

A perfect example of this is vector operations. Games use vector operations all over the place, so their impact on performance is spread out over the entire program. You'll never see a dot product or vector addition routine at the top of a profile chart, but it will certainly affect performance!

Reply via email to