From: | Andres Freund <andres(at)anarazel(dot)de> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | pgsql-hackers(at)lists(dot)postgresql(dot)org, Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>, Andrew Gierth <andrew(at)tao11(dot)riddles(dot)org(dot)uk>, Alexander Kuzmenkov <a(dot)kuzmenkov(at)postgrespro(dot)ru> |
Subject: | Re: Performance improvements for src/port/snprintf.c |
Date: | 2018-10-03 17:00:43 |
Message-ID: | 20181003170043.thdyezozi343dkuc@alap3.anarazel.de |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Hi,
On 2018-10-03 12:54:52 -0400, Tom Lane wrote:
> Andres Freund <andres(at)anarazel(dot)de> writes:
> > It seems the general "use strfromd if available" approach is generally
> > useful, even if we need to serialize the precision.
>
> Agreed.
>
> > Putting it into an
> > inline appears to be helpful, avoids some of the otherwise precision
> > related branches. Do you have any feelings about which header to put
> > the code in? I used common/string.h so far.
>
> I do not think it should be in a header, for two reasons:
>
> (1) The need to use sprintf for portability means that we need very
> tight constraints on the precision spec *and* the buffer size *and*
> the format type (%f pretty much destroys certainty about how long the
> output string is). So this isn't going to be general purpose code.
> I think just writing it into float[48]out is sufficient.
Well, the numbers suggest it's also useful to do so from snprintf - it's
not that rare that we output floating point numbers from semi
performance critical code, even leaving aside float[48]out. So I'm not
convinced that we shouldn't do this from within snprintf.c too. Now we
could open-code it twice, but i'm not sure I see the point.
If we just define the API as having to guarantee there's enough space
for the output format, I think it'll work well enough for now?
snprintf.c already assumes everything floating point can be output in
1024 chars, no?
Greetings,
Andres Freund
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-10-03 17:18:35 | Re: Performance improvements for src/port/snprintf.c |
Previous Message | Tom Lane | 2018-10-03 16:54:52 | Re: Performance improvements for src/port/snprintf.c |