Thread

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

    Nazir Bilal Yavuz <byavuz81@gmail.com> — 2025-12-15T21:01:19Z

    Hi,
    
    On Mon, 15 Dec 2025 at 22:26, Peter Eisentraut <peter@eisentraut.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