Re: Big Performance drop of Exceptions in UDFs between V11.2 and 13.4
Andrew Dunstan <andrew@dunslane.net>
From: Andrew Dunstan <andrew@dunslane.net>
To: Julien Rouhaud <rjuju123@gmail.com>,
"ldh@laurent-hasson.com" <ldh@laurent-hasson.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Ranier Vilela <ranier.vf@gmail.com>,
Justin Pryzby <pryzby@telsasoft.com>,
"pgsql-performance@postgresql.org" <pgsql-performance@postgresql.org>
Date: 2021-09-02T15:22:54Z
Lists: pgsql-performance
Attachments
- profile-good.png (image/png)
- profile-bad.png (image/png)
On 8/31/21 1:55 PM, Andrew Dunstan wrote: > On 8/31/21 11:37 AM, Julien Rouhaud wrote: >> On Tue, Aug 31, 2021 at 10:51 PM ldh@laurent-hasson.com >> <ldh@laurent-hasson.com> wrote: >>> OK... I thought that track had been abandoned as per Julien's last message. Anyways, I'll be patient! >>> >> I just happened to have both standard installer and locally compiled >> versions available, so I could confirm that I reproduced the problem >> at least with the standard installer. Note that my message also said >> " if default build on windows has NLS included". After looking a bit >> more into the Windows build system, I confirm that NLS isn't included >> by default so this is not the problem, as Andrew said. >> >> After installing gettext and a few other dependencies, adapting >> config.pl I wish I could also confirm being able to reproduce the >> problem on my build, but apparently I'm missing something as I can't >> get any modification in config.pl have any effect. I'm not gonna >> waste more time on that since Andrew is already in the middle of the >> investigation. > > > The culprit turns out to be the precise version of libiconv/libintl > used. There is a slight difference between the versions used in the > 11.13 installer and the 13.4 installer. We need to dig into performance > more (e.g. why does the test take much longer on an NLS enabled build > even when we are using 'initdb --no-locale'?) But I'm pretty confident > now that this is the issue. I've started talks with our installer guys > about fixing it. > > Here are a couple of pictures of profiles made with a tool called sleepy. The bad profile is from release 13.4 built with the latest gettext, built with vcpkg. The good profile is the same build but using the intl-8.dll copied from the release 11.13 installer. The good run takes about a minute. The bad run takes about 30 minutes. I'm not exactly sure what the profiles tell us. cheers andrew -- Andrew Dunstan EDB: https://www.enterprisedb.com