Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #9286

Re: Performance of code compiled with the g++

From Victor Bazarov <v.bazarov@comcast.invalid>
Newsgroups comp.lang.c++
Subject Re: Performance of code compiled with the g++
Date 2011-08-24 08:11 -0400
Organization A noiseless patient Spider
Message-ID <j32pom$div$1@dont-email.me> (permalink)
References <j329q7$j96$1@z-news.wcss.wroc.pl>

Show all headers | View raw


On 8/24/2011 3:38 AM, Wojciech Waga wrote:
> I was trying to test some performance gains of move semantics when I
> came across a strange thing, namely:
>
> For a code:
> http://pastebin.com/3jqgyc8v
>
> (There is a copy constructor to prevent gcc4.6 from using default move
> constructor which speeds up things greatly, but is of no interest here.)
>
> The speed of resulting binary differs vastly among versions of gcc. It
> seems like gcc<4.5 gives pretty good binary, and gcc>=4.5 does not.
> Intel compiler 12.0.0 gives results similar to gcc<4.5.
>
> For those who prefer bare values:
> The same code compiled with:
> gcc4.4.6 runs 0.47s
> gcc4.6.1 runs 1.73s
>
> A full plot comparing 3 versions of gcc with std= c++98/c++0x is here:
> http://www.wojek.net/ww/gcc_speed.png
>
> Does anyone know what is wrong?

You mean, besides the fact that GCC is community-based (meaning 
everybody, but in fact *nobody*, is responsible for the functionality or 
the performance)?

 > Especially the difference between gcc4.6
> with and without c++0x is interesting. Can be there any c++0x
> optimisations in library routines for this code?

Nah...  Optimisation?  In the library routines?...  Nah...

Could be that gcc C++0x is smart enough to see that your code has very 
little side effect (no I/O to speak of) and it figures to let you down 
easy and just puts some 'usleep' calls in there, just to keep you guessing?

Use a profiler and figure out where the differences are.  Then look at 
the machine code, if you're into it.  But usually you should see all of 
that in the source.  It's not like your program is so complex that its 
total source (including allocators and sorting) would be too hard to 
comprehend.

V
-- 
I do not respond to top-posted replies, please don't ask

Back to comp.lang.c++ | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Performance of code compiled with the g++ Wojciech Waga <adun_wywalto_@o2.pl> - 2011-08-24 09:38 +0200
  Re: Performance of code compiled with the g++ Victor Bazarov <v.bazarov@comcast.invalid> - 2011-08-24 08:11 -0400
    Re: Performance of code compiled with the g++ Jorgen Grahn <grahn+nntp@snipabacken.se> - 2011-08-24 20:13 +0000
      Re: Performance of code compiled with the g++ Victor Bazarov <v.bazarov@comcast.invalid> - 2011-08-24 17:07 -0400
  Re: Performance of code compiled with the g++ Edek <edek.pienkowski@gmail.com> - 2011-08-24 22:32 +0200

csiph-web