Received: from malur.postgresql.org ([2a02:16a8:dc51::56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1g7juo-0004XC-KK for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Oct 2018 16:22:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1g7jun-0005Cq-1z for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Oct 2018 16:22:21 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1g7jum-0005Cj-RB for pgsql-hackers@lists.postgresql.org; Wed, 03 Oct 2018 16:22:20 +0000 Received: from sss.pgh.pa.us ([66.207.139.130]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1g7juk-0002BF-TC for pgsql-hackers@lists.postgresql.org; Wed, 03 Oct 2018 16:22:20 +0000 Received: from sss1.sss.pgh.pa.us (localhost [127.0.0.1]) by sss.pgh.pa.us (8.14.4/8.14.4) with ESMTP id w93GMD3p027042; Wed, 3 Oct 2018 12:22:13 -0400 From: Tom Lane To: Andres Freund cc: pgsql-hackers@lists.postgresql.org, Thomas Munro , Andrew Gierth , Alexander Kuzmenkov Subject: Re: Performance improvements for src/port/snprintf.c In-reply-to: <20181003161454.ozeioucsimjg5g6m@alap3.anarazel.de> References: <20180927004022.lfhffbj3roxzf5ca@alap3.anarazel.de> <20180927005705.shbl3n5hq3t65n2j@alap3.anarazel.de> <87r2hffwda.fsf@news-spur.riddles.org.uk> <6FEC34CD-B8C0-44E2-8D1F-2320568BDC78@anarazel.de> <30551.1538517271@sss.pgh.pa.us> <20181003060936.zul7mfkcu5w7rotg@alap3.anarazel.de> <25583.1538569214@sss.pgh.pa.us> <20181003155207.b3lqmovuv2c5c4id@alap3.anarazel.de> <26510.1538582852@sss.pgh.pa.us> <20181003161454.ozeioucsimjg5g6m@alap3.anarazel.de> Comments: In-reply-to Andres Freund message dated "Wed, 03 Oct 2018 09:14:54 -0700" MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-ID: <27040.1538583733.1@sss.pgh.pa.us> Date: Wed, 03 Oct 2018 12:22:13 -0400 Message-ID: <27041.1538583733@sss.pgh.pa.us> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Andres Freund writes: > On 2018-10-03 12:07:32 -0400, Tom Lane wrote: >> [ scratches head ... ] How would that work? Seems like it necessarily >> adds a strlen() call to whatever we'd be doing otherwise. palloc isn't >> going to be any faster just from asking it for slightly fewer bytes. >> I think there might be something wrong with your test scenario ... >> or there's more noise in the numbers than you thought. > I guess the difference is that we're more likely to find reusable chunks > in aset.c and/or need fewer OS allocations. As the memory is going to > be touched again very shortly afterwards, the cache effects probably are > neglegible. > The strlen definitely shows up in profiles, it just seems to save at > least as much as it costs. > Doesn't strike me as THAT odd? What it strikes me as is excessively dependent on one particular test scenario. I don't mind optimizations that are tradeoffs between well-understood costs, but this smells like handwaving that's going to lose as much or more often than winning, once it hits the real world. regards, tom lane