[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: gEDA-user: interesting links
On Thu, 2007-08-30 at 13:48 -0400, DJ Delorie wrote:
> > I'm not sure what the performance hit might be in removing it, and
> > using a test on the object's type.
>
> From a gcc developer's point of view...
>
> A C++ method call off a pointer is two loads and an indirect call.
> Three opcodes.
>
> The "type" way is a load, compare, perhaps a switch statement (which
> is an indirect jump), and a direct call.
> You take a "big" hit for the compare/switch because it always checks
> for out-of-bounds cases, so you end up with a lot of compares and
> jumps, which are bad for performance.
What if the code "guarantees" type is correct, so we don't need to
compare before indexing the vfunc array?
> Overall, not much difference, but C++ is a bit faster.
>
> HOWEVER, from *our* point of view, it's looks like this:
>
> Adding a new object in C++ means editing one file.
>
> Adding a new object in C means editing *all* the files that have such
> a compare/switch in them.
Surely just updating the one vtable?
--
Peter Clifton
Electrical Engineering Division,
Engineering Department,
University of Cambridge,
9, JJ Thomson Avenue,
Cambridge
CB3 0FA
Tel: +44 (0)7729 980173 - (No signal in the lab!)
_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user