2018-06-05 15:00 GMT+02:00 Andres Freund <and...@anarazel.de>:

> Hi,
>
> On 2018-06-05 06:32:31 +0200, Pavel Stehule wrote:
> > ./configure --with-libxml --enable-tap-tests --enable-debug --with-perl
> > CFLAGS="-ggdb -Og -g3 -fno-omit-frame-pointer"
> >
> > [pavel@nemesis postgresql]$ gcc --version
> > gcc (GCC) 8.1.1 20180502 (Red Hat 8.1.1-1)
> >
> > I executed simple script
> >
> >  do $$ declare i bigint = 1; s bigint = 0; begin while i <= 100000000
> loop
> > s := s + i; i := i + 1; end loop;  raise notice '%', s; end $$;
> >
> >    7,68%  postmaster  postgres           [.]
> > GetSnapshotData                               ▒
> >    7,53%  postmaster  plpgsql.so         [.]
> > exec_eval_simple_expr                         ▒
> >    6,49%  postmaster  postgres           [.]
>
> It seems to me the right fix here isn't a new class of functions, but
> rather support for delaying the computation of the snapshot to the point
> it's needed.  That'll be far more generically applicable and doesn't
> require user interaction.
>

good idea. Can be quick fix.

>
>
> > ExecInterpExpr                                ▒
> >    4,13%  postmaster  postgres           [.]
>
> So we're going to need to optimize this further as well, I've a pending
> patch for that, luckily ;)
>

nice :)


> > LWLockRelease                                 ▒
> >    4,12%  postmaster  postgres           [.]
>
> That's also GetSnapshotData()...
>

there are about 10% locking, unlocking plan cache still.

Regards

Pavel


> Greetings,
>
> Andres Freund
>

Reply via email to