> 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