On Wed, Sep 25, 2013 at 6:25 AM, Andres Freund <and...@2ndquadrant.com>wrote:

> On 2013-09-24 19:56:32 +0200, Andres Freund wrote:
> > On 2013-09-24 13:51:04 -0300, Alvaro Herrera wrote:
> > > David Rowley escribió:
> > >
> > > > I do see a 15-18% slow down with the patched version, so perhaps
> I'll need
> > > > to look to see if I can speed it up a bit, although I do feel this
> > > > benchmark is not quite a normal workload.
> > >
> > > Ouch.  That's certainly way too much.  Is the compiler inlining
> > > process_log_prefix_padding()?  If not, does it do it if you add
> "inline"
> > > to it?  That might speed up things a bit.  If that's not enough, maybe
> > > you need some way to return to the original coding for the case where
> no
> > > padding is set in front of each option.
> >
> > From a very short look without actually running it I'd guess the issue
> > is all the $* things you're now passing to do appendStringInfo (which
> > passes them off to vsnprintf).
> > How does it look without that?
>
> That's maybe misunderstandable, what I mean is to have an if (padding >
> 0) around the the changed appendStringInfo invocations and use the old
> ones otherwise.
>
>
Yeah I had the same idea to try that next. I suspect that's where the slow
down is rather than the processing of the padding. I'm thinking these small
tweaks are going to make the code a bit ugly, but I agree about the 15-18%
slowdown is a no go. The only other thing apart from checking if padding >
0 is to check if the char after the % is > '9', in that case it can't be
formatting as we're only allowing '-' and '0' to '9'. Although I think
that's a bit hackish, but perhaps it is acceptable if it helps narrow the
performance gap.

More benchmarks to follow soon.

David



> Greetings,
>
> Andres Freund
>
> --
>  Andres Freund                     http://www.2ndQuadrant.com/
>  PostgreSQL Development, 24x7 Support, Training & Services
>

Reply via email to