http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54075



--- Comment #31 from Martin Cracauer <cracauer at cons dot org> 2012-10-25 
17:47:45 UTC ---

The case I reported is in a large system. I did an isolated test case which

sees the time shoots up from 32.54 seconds in gcc-4.4 to 42.86 s in gcc-4.7 and

back down to 32.27s  when using gcc-4.7 with the tr1 hashtables.



As you can see there also is a reasonably catastrophic increase in minor page

faults.



gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) 

extra flags:

meh: 1635550270 4081940 288998848

0:32.54 32.54 real 30.50 user 1.97 sys 99% CPU 0/1394855 faults

   text    data     bss     dec     hex filename

   5456     688 3840032 3846176  3ab020 sdriver



gcc version 4.7.2 (Debian 4.7.2-4) 

extra flags:

meh: 1635550270 4081940 288998848

0:42.86 42.86 real 40.21 user 2.56 sys 99% CPU 0/2101681 faults

   text    data     bss     dec     hex filename

   6822     760 3840032 3847614  3ab5be sdriver



gcc version 4.7.2 (Debian 4.7.2-4) 

extra flags: -DCRA_USE_TR1

meh: 1635550270 4081940 288998848

0:32.27 32.27 real 30.29 user 1.92 sys 99% CPU 0/1394853 faults

   text    data     bss     dec     hex filename

   5426     736 3840032 3846194  3ab032 sdriver



Profiles for the three cases:

http://www.cons.org/gcc-hash-slowdown/



Source code for test case:

http://www.cons.org/gcc-hash-slowdown/reproduce-slow-hash.tar.gz



Please feel free to copy things if you want to append things to this pr.



My original case with worse slowdown is in a complicated system and driven from

Lisp. For no other reason than Murphy's law the profiler in there does not

penetrate into layers of C++ frames for this run, although it normally does. So

I'm not able to break up the insert() into it's parts right now.  I have no

reason to believe that it is different than this test case, probably just a

slower hash.  I have seen gcc-4.7 + tr1 hashtable faster than gcc-4.4 both in

the large system and in the test case so I'm pretty confident that we are

looking at the same thing here. I'm fixing that profiler, more later.



Hope this helps.

Reply via email to