Some performance questions
Lars Kyllingstad
public at kyllingen.NOSPAMnet
Mon Feb 2 13:26:03 PST 2009
Daniel Keep wrote:
>
> Lars Kyllingstad wrote:
>> [snip]
>> From a performance
>> perspective, however, it carries with it the overhead of an extra
>> function call, which I'm not sure I want.
>>
>> -Lars
>
> You're worried about a second function call which could potentially be
> inlined, yet you're seemingly not worried about the overhead of virtual
> calls or heap allocations...
But that's the problem, you see. I don't know how expensive these
operations are, hence my initial question(s). (This was also why I
posted my question in D.learn.)
For instance, I didn't know (not sure I still do) what the cost is of
frequent allocation/deallocation/access of stack memory vs. infrequent
allocation/deallocation and frequent access of heap memory. From the
replies I've got, it seems heap variables make for significantly slower
code.
Nor was I sure, as you pointed out, how expensive a virtual function
call is vs. an extra non-virtual function call.
I'm a physicist, not a computer scientist. :)
> Allow me to quote Donald Knuth:
>
>> We should forget about small efficiencies, say about 97% of the time:
>> premature optimization is the root of all evil.
>
> Unless you're doing something where you *know* you're going to need
> every last cycle, just go with whichever design works best. Your
> response to Jarrett implies that you've already got a design in mind,
> and are just fishing for a magic "make it go faster button."
I want that button, yes. :)
But seriously, I am doing numerical computations, so performance is
absolutely an issue. The main thing I wanted to know was, can I have
both performance and usability, or do I have to choose? With Jarretts
suggestion I can, to some degree, have both.
> Believe me, if Walter had invented such a thing, he wouldn't be wasting
> his time putting up with us; he'd be too busy smoking $100 bills from
> the comfort of his SPACE FORTRESS. :D
What are you implying, that he wouldn't make it open-source? :)
> In any case, I'm willing to bet that if there *are* inefficiencies
> you're not going to know exactly where until you've written the code,
> anyway. :P
>
> If classes work, and make for an elegant design, go for it.
>
> -- Daniel
More information about the Digitalmars-d-learn
mailing list