From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9915 invoked by alias); 28 Feb 2003 16:46:02 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 9877 invoked by uid 71); 28 Feb 2003 16:46:01 -0000 Date: Fri, 28 Feb 2003 16:46:00 -0000 Message-ID: <20030228164601.9876.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: Paolo Carlini Subject: Re: libstdc++/9876: filebuf::sputc more than 10% slower than putc Reply-To: Paolo Carlini X-SW-Source: 2003-02/txt/msg01485.txt.bz2 List-Id: The following reply was made to PR libstdc++/9876; it has been noted by GNATS. From: Paolo Carlini To: =?ISO-8859-1?Q?P=E9tur_Run=F3lfsson?= Cc: paolo@gcc.gnu.org, gcc-bugs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: libstdc++/9876: filebuf::sputc more than 10% slower than putc Date: Fri, 28 Feb 2003 17:43:25 +0100 P=E9tur Run=F3lfsson wrote: >> Yes, filebuf::sputc shall be improved: patches welcome, >> or, otherwise, stay tuned! >> =20 >> However, the funny thing of your PR is that, as a matter of >> fact, I *cannot* reproduce the trend neither with mainline >> (which produces better code, indeed) nor with 3.2.2! >> > >Whoops, s/putc/putc_unlocked/ :-P > >putc calls flockfile/funlockfile for each character, >streambuf::sputc does not do so and should be compared against >putc_unlocked. > Hi Petur. Very Interesting issues... Indeed, putc_unlocked is _much_ faster (3 x ?) However... The interesting thing is the following: a series of streambuf::sputc, does _not_ call an underlying C-library putc, but instead, upon overflow, an underlying _M_file.xsputn, which means an underlying _locked_ fwrite, _not_ an underlying fwrite_unlocked! So, I would argue that your comparison was not fair before, and it's not fair now! ;) Needless to say, you are right, and Nathan is right, about the need to improve our streambuf::sputc, but we still do _not_ have real numbers to use as a point of reference. Are you willing to work on this? Paolo. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=3Dview%20audit-trail&database=3D= gcc&pr=3D9876