Re: src/port/snprintf.c: Optimize the common base=10 case in fmtint
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Mark Dilger <mark.dilger@enterprisedb.com>, Arjan van de Ven <arjan@linux.intel.com>, pgsql-hackers@postgresql.org
Date: 2021-10-26T18:58:31Z
Lists: pgsql-hackers
Hi, On 2021-10-26 14:33:08 -0400, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > On 2021-10-26 13:51:55 -0400, Tom Lane wrote: > >> I'd be inclined to just hard-wire the three allowed cases, and not have > >> an arbitrary-divisor code path at all. > > > Yea, I came to the same conclusion. But I'd implement it by moving the > > division into a separate inline function called from the switch. I tested that > > locally and it works, but I got sidetracked by [1]. > > Uh, why not just a "switch (base)" around three copies of the loop? > Don't overthink this. Well, putting the loop into its own function isn't really much more complicated than duplicating the body. And there's also a few more "unnecessarily run-time" branches that we could get rid of that way. But I'm also ok with duplicating, at least for now. Greetings, Andres Freund
Commits
-
Speed up printing of integers in snprintf.c.
- 3c17926eedd5 15.0 landed