This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libstdc++/54075] [4.7.1] unordered_map insert 3x slower than 4.6.2
- From: "cracauer at cons dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 22 Oct 2012 20:50:25 +0000
- Subject: [Bug libstdc++/54075] [4.7.1] unordered_map insert 3x slower than 4.6.2
- Auto-submitted: auto-generated
- References: <bug-54075-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54075
Martin Cracauer <cracauer at cons dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |cracauer at cons dot org
--- Comment #26 from Martin Cracauer <cracauer at cons dot org> 2012-10-22 20:50:25 UTC ---
I'm afraid this doesn't quite do it.
I still observe a > 60% slowdown going from gcc-4.4 to gcc-4.7, with this fix
already in, specifically for insert(). It's a 320,000 member table I am
dealing with here.
I can make 4.7 be as fast as 4.4 by preemptively setting the reserve to what I
know (for this test) to be the maximum size I need, but measured resident
memory shoots up (not unexpected). And resident memory of the 4.7 build was
already higher than 4.4 so I don't think this can be the answer here.
Playing with the load factor resulted in a minor speedup with 0.4 (from 1.0),
but not reaching 4.4 performance. Other load factors (lower than 0.4 and higher
than 1.0) are even slower.
Is there more specific information available about the tradeoff numbers that
made GNU pick this new implementation?