> i'm working on the topic "overhead and codesize in C and C++".  The
> goal of this work is to find out, why C++ is not as fast as normal C
> code (in same application).

Why do you believe this is true?

> But already by the beginning we found out something very interesting.
> 
> The Code:
> int main(int argc, char *argv[])
> {
>   return 0;
> }
> No function so far. But this compiled with gcc and g++ (on Linux
> Redhead EL5, Intel Xeon 5130 (x86_64))
> 
> Codesize in C:    7820
> Codesize in C++: 8175
> 
> But much more interesting is the number of instructions (mesured with
> callgrind/kcachegrind):
> For main:
> Ir in C: 7
> Ir in C++: 7

Well, of course.

> Whole program (you see, there is no include)
> Ir in C: 80 158 (a lot)
> Ir in C++: 1 295 980 (massive!!)

So?  You started out asking about performance.  Code size is a completely 
independent property.  Since the semantics of C++ are more complex than those 
of C (due to things like constructors, exceptions, etc.) it is to be expected 
that a complete program is slightly larger.  That doesn't mean it is slower.

Note also that a valid comparison is between C++ and equivalent C.  For 
example, a comparison between regular function calls in C and virtual method 
calls in C++ is invalid.  A comparison between virtual method calls in C++ and 
calls through a table of function pointers in C is valid -- and will produce 
the same performance since you are in fact doing the same thing.

        paul

Reply via email to