On Sun, Nov 23, 2003 at 05:57:09AM -0500, Larry Troxler wrote:
I don't agree that for an equivalent program, it is slower than C. I was actually optimistic that you would actually provide some examples (I don't mind at all being proved wrong).
Maybe we should move this discussion to the dev list, but it might be interesting to some other people.
Here's a very simple exercise; it doesn't prove that C is necessarely better than C++, but it shows that code compiled with g++ produces bigger executable code than gcc, and that C++ code produces even bigger code than C code compiled with g++.
A simple program in C (hello.c): #include <stdio.h> int main() { puts( "Bonjour le monde!\n" ); }
The same program in C++ (hello.cpp): #include <iostream> int main() { std::cout << "Bonjour le monde!\n"; }
Compilation of the C program with gcc: $ gcc -o hello_c-gcc hello.c
Compilation of the C program with g++: $ g++ -o hello_c-g++ hello.c
Compilation of the C++ program with g++: $ g++ -o hello_cpp hello.cpp
Stripping the binaries: $ strip --strip-unneeded hello_c-gcc hello_c-g++ hello_cpp
Size of the binaries: $ ls -l hello_c-gcc hello_c-g++ hello_cpp -rwxr-xr-x 1 marc marc 2836 nov 23 12:35 hello_c-gcc -rwxr-xr-x 1 marc marc 2940 nov 23 12:35 hello_c-g++ -rwxr-xr-x 1 marc marc 3840 nov 23 12:35 hello_cpp
Size of the machine code (disassembled with objdump): $ objdump -d hello_c-gcc | wc 222 1080 9827 $ objdump -d hello_c-g++ | wc 222 1080 9827 $ objdump -d hello_cpp | wc 268 1393 12053
Once dissambled, binaries of the C code compiled with gcc and g++ are exactly the same, so they probably run at the same speed. The C++ code produces mode machine instructions than the C code, so it probably takes more time to run than its C equivalent.
I'm not an expert, and this exercice is probably bogus.
Googling around, I found this page about C vs C++ performance: http://www.eventhelix.com/RealtimeMantra/basics/ComparingCPPAndCPerformance.... The analysis basically says that C++ add some overhead that can be reduced.
-- Marc