Re: [PATCH] Fix severe performance regression with gettext 0.20+ on Windows

From: Nazir Bilal Yavuz <byavuz81(at)gmail(dot)com>
To: Peter Eisentraut <peter(at)eisentraut(dot)org>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Bryan Green <dbryan(dot)green(at)gmail(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: [PATCH] Fix severe performance regression with gettext 0.20+ on Windows
Date: 2025-12-15 21:01:19
Message-ID: CAN55FZ1A2Cw85dP2py11F4Rb1XpJke8jHXDb_R-f23_uvDfVCQ@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

On Mon, 15 Dec 2025 at 22:26, Peter Eisentraut <peter(at)eisentraut(dot)org> wrote:
>
> On 12.12.25 10:18, Nazir Bilal Yavuz wrote:
> >>>> FWIW, Bilal and I had, IIRC, explicitly not enabled on windows CI because it
> >>>> made the build process even slower. But perhaps we should re-measure the
> >>>> difference and re-consider?
> >>>>
> >>>> Greetings,
> >>>>
> >>>> Andres Freund
> >>> As long as you use Windows locale names once this patch is in place.
> >>> Posix locale names will still incur the performance hit until the next
> >>> gettext release. Once using the next gettext release there will not be a
> >>> performance penalty for using an invalid locale on Windows.
> >>
> >> What I was referring to was that *building* with NLS support is slower than
> >> building without, which is the reason why CI currently isn't testing NLS in
> >> the "Windows - Server 2022, MinGW64 - Meson" task. Even with ccache, the CI
> >> builds with mingw are pretty darn slow, adding the overhead of creating a good
> >> number of additional files is (or was, haven't retested this recently) making
> >> it even slower.
> >
> > I tested this and the timings (minute:seconds) of running tests:
> >
> > MinGW + NLS [1]: 16:01
> > MinGW + Patch + NLS [2]: 13:57
> >
> > I ran the CI again to make sure and the speed up was similar.
>
> Andres was asking about the build time with and without NLS.

You are right. I run CI again and compared build times now:

MinGW - NLS [1]: 05:59
MinGW + NLS [2]: 05:55
MinGW + Patch - NLS [3]: 06:42
MinGW + Patch + NLS [4]: 06:04

> I have been testing this a bit. Locally, using MinGW, I was not able to
> detect any significant difference.

I did not detect any on the CI MinGW task either.

> On CI runs, the numbers were to
> erratic to get any consistent sense.

Yes, I realized that. If you have not cleared the task cache, clearing
it helps to some degree.

[1] https://cirrus-ci.com/task/6337023629328384
[2] https://cirrus-ci.com/task/4929648745775104
[3] https://cirrus-ci.com/task/5570413708705792
[4] https://cirrus-ci.com/task/5409537722679296

--
Regards,
Nazir Bilal Yavuz
Microsoft

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Melanie Plageman 2025-12-15 21:05:19 Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access)
Previous Message Tom Lane 2025-12-15 20:39:17 Re: PRI?64 vs Visual Studio (2022)