(That C++ is slower thing again) Re: the damned GUI - was:[PD] Pd in white on black and OSC
Marc Lavallée
odradek at videotron.ca
Sun Nov 23 19:22:07 CET 2003
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.htm
The analysis basically says that C++ add some overhead that can be reduced.
--
Marc
More information about the Pd-list
mailing list