From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12550 invoked by alias); 11 Dec 2013 00:23:21 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 12529 invoked by uid 48); 11 Dec 2013 00:23:16 -0000 From: "ben.maurer at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug libstdc++/59439] std::locale uses atomic instructions on construction Date: Wed, 11 Dec 2013 00:23:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: libstdc++ X-Bugzilla-Version: 4.8.3 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: ben.maurer at gmail dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2013-12/txt/msg00921.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59439 --- Comment #6 from Ben Maurer --- I agree this isn't necessarily the cleanest way to accomplish this task. My discovery of this bug came through a real life application which was deployed to real users and had a noticeable impact due to this issue. This isn't benchmarking for the sake of benchmarking, an actual developer decided to write code this way. In the context of their code, choosing stringstream made slightly more sense because they were combining multiple integers and strings. However, bug 40088 suggests that other users may have run into this problem in the past. Given that iostream shows slower, but still reasonable performance in the single-thread case, it's possible others will run into it in the future. Machines will only be getting more cores in the future, so this problem may increase in impact over time. In any case, I've fixed the original application, and am filing this bug in the hopes that we can save others debugging time in the future finding bottlenecks like this.