Re: src/port/snprintf.c: Optimize the common base=10 case in fmtint

Arjan van de Ven <arjan@linux.intel.com>

From: Arjan van de Ven <arjan@linux.intel.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, Mark Dilger <mark.dilger@enterprisedb.com>
Cc: pgsql-hackers@postgresql.org
Date: 2021-10-26T18:13:14Z
Lists: pgsql-hackers
On 10/26/2021 10:51 AM, Tom Lane wrote:
> Mark Dilger <mark.dilger@enterprisedb.com> writes:
>> It appears fmtint only has three options for base, being 10, 16, and 8.  Have you profiled with either of the others special cased as well?  I don't see much use in optimizing for octal, but hexadecimal is used quite a bit in wal with patterns like "%08X%08X%08X".
> 
> I'd be inclined to just hard-wire the three allowed cases, and not have
> an arbitrary-divisor code path at all.
> 

ok so feedback is "Yes please but we want more of it" :)

I'll go poke at making an updated patch that does 8/10/16 and nothing else.





Commits

  1. Speed up printing of integers in snprintf.c.