git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* "meson test" very slow on Windows
@ 2025-02-01 22:56 M Hickford
  2025-02-02  7:46 ` Johannes Sixt
  0 siblings, 1 reply; 5+ messages in thread
From: M Hickford @ 2025-02-01 22:56 UTC (permalink / raw)
  To: Git Mailing List; +Cc: Patrick Steinhardt, soekkle

Hi. Has anyone else found that "meson test" is very slow on Windows? I
built Git using "meson compile" with compiler MSVC and backend ninja.

Curiously the first few tests were fast. Test 20 (exact number varies)
and later were slow:

   1/1029 unit-tests                                               OK
            2.11s
   2/1029 t-example-decorate                                       OK
            1.45s
   3/1029 t-hash                                                   OK
            1.32s
   4/1029 t-hashmap                                                OK
            1.24s
   5/1029 t-mem-pool                                               OK
            1.16s
   6/1029 t-oid-array                                              OK
            1.10s
   7/1029 t-oidmap                                                 OK
            1.05s
   8/1029 t-oidtree                                                OK
            0.98s
   9/1029 t-prio-queue                                             OK
            0.94s
  10/1029 t-reftable-basics                                        OK
            0.89s
  11/1029 t-reftable-block                                         OK
            0.83s
  12/1029 t-reftable-merged                                        OK
            0.77s
  13/1029 t-reftable-pq                                            OK
            0.72s
  14/1029 t-reftable-reader                                        OK
            0.64s
  15/1029 t-reftable-readwrite                                     OK
            0.54s
  16/1029 t-reftable-record                                        OK
            0.45s
  17/1029 t-reftable-tree                                          OK
            0.29s
  18/1029 t-strbuf                                                 OK
            0.20s
  19/1029 t-strcmp-offset                                          OK
            0.51s
  20/1029 t-trailer                                                OK
            5.40s
  21/1029 t-urlmatch-normalization                                 OK
            5.32s
  22/1029 t-reftable-stack                                         OK
           17.67s
  23/1029 t0013-sha1dc                                             OK
           42.50s
  24/1029 t0004-unwritable                                         OK
           46.87s
  25/1029 t0022-crlf-rename                                        OK
           43.77s
  26/1029 t0014-alias                                              OK
           49.05s
  27/1029 t0023-crlf-am                                            OK
           32.28s
  28/1029 t0005-signals                                            OK
           49.83s
  29/1029 t0018-advice                                             OK
           58.71s
  30/1029 t0010-racy-git                                           OK
           64.75s

On Linux, all tests were fast as expected.

I built at commit 58b5801aa9 (The sixth batch, 2025-01-31)

Any ideas?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: "meson test" very slow on Windows
  2025-02-01 22:56 "meson test" very slow on Windows M Hickford
@ 2025-02-02  7:46 ` Johannes Sixt
  2025-02-02 11:15   ` Patrick Steinhardt
  2025-02-02 21:45   ` M Hickford
  0 siblings, 2 replies; 5+ messages in thread
From: Johannes Sixt @ 2025-02-02  7:46 UTC (permalink / raw)
  To: M Hickford; +Cc: Patrick Steinhardt, soekkle, Git Mailing List

Am 01.02.25 um 23:56 schrieb M Hickford:
> Hi. Has anyone else found that "meson test" is very slow on Windows? I
> built Git using "meson compile" with compiler MSVC and backend ninja.

The tests are very slow on Windows in general. Please clarify: when you
say "very slow on Windows with meson", do you then mean "slower than
with a Makefile build"?

-- Hannes


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: "meson test" very slow on Windows
  2025-02-02  7:46 ` Johannes Sixt
@ 2025-02-02 11:15   ` Patrick Steinhardt
  2025-02-02 21:45   ` M Hickford
  1 sibling, 0 replies; 5+ messages in thread
From: Patrick Steinhardt @ 2025-02-02 11:15 UTC (permalink / raw)
  To: Johannes Sixt; +Cc: M Hickford, soekkle, Git Mailing List

On Sun, Feb 02, 2025 at 08:46:46AM +0100, Johannes Sixt wrote:
> Am 01.02.25 um 23:56 schrieb M Hickford:
> > Hi. Has anyone else found that "meson test" is very slow on Windows? I
> > built Git using "meson compile" with compiler MSVC and backend ninja.
> 
> The tests are very slow on Windows in general.

Yeah, it's an unfortunate reality that tests are slow on Windows. It was
also mentioned that the first ~20 tests are fast. This is expected,
because the unit tests execute first, and these are way faster compared
to the integration tests.

> Please clarify: when you say "very slow on Windows with meson", do you
> then mean "slower than with a Makefile build"?

Judging from my own tests there is no significant difference between the
two build systems. But in case there is I'd be happy to learn about it.

Patrick

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: "meson test" very slow on Windows
  2025-02-02  7:46 ` Johannes Sixt
  2025-02-02 11:15   ` Patrick Steinhardt
@ 2025-02-02 21:45   ` M Hickford
  2025-02-02 23:13     ` brian m. carlson
  1 sibling, 1 reply; 5+ messages in thread
From: M Hickford @ 2025-02-02 21:45 UTC (permalink / raw)
  To: Johannes Sixt; +Cc: M Hickford, Patrick Steinhardt, soekkle, Git Mailing List

On Sun, 2 Feb 2025 at 07:46, Johannes Sixt <j6t@kdbg.org> wrote:
>
> Am 01.02.25 um 23:56 schrieb M Hickford:
> > Hi. Has anyone else found that "meson test" is very slow on Windows? I
> > built Git using "meson compile" with compiler MSVC and backend ninja.
>
> The tests are very slow on Windows in general. Please clarify: when you
> say "very slow on Windows with meson", do you then mean "slower than
> with a Makefile build"?

Thanks, I didn't know about that. This is my first time I've
successfully built Git on Windows, so I can't compare build systems.
(Makefile and CMake never worked for me.)

Out of curiosity, why are the integration tests so much slower on
Windows than Linux? Is it the 10+ ms overhead of creating each new
process? https://stackoverflow.com/q/47845/284795
https://stackoverflow.com/questions/10710912/what-is-the-process-creation-overhead-in-windows

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: "meson test" very slow on Windows
  2025-02-02 21:45   ` M Hickford
@ 2025-02-02 23:13     ` brian m. carlson
  0 siblings, 0 replies; 5+ messages in thread
From: brian m. carlson @ 2025-02-02 23:13 UTC (permalink / raw)
  To: M Hickford; +Cc: Johannes Sixt, Patrick Steinhardt, soekkle, Git Mailing List

[-- Attachment #1: Type: text/plain, Size: 2025 bytes --]

On 2025-02-02 at 21:45:34, M Hickford wrote:
> On Sun, 2 Feb 2025 at 07:46, Johannes Sixt <j6t@kdbg.org> wrote:
> >
> > Am 01.02.25 um 23:56 schrieb M Hickford:
> > > Hi. Has anyone else found that "meson test" is very slow on Windows? I
> > > built Git using "meson compile" with compiler MSVC and backend ninja.
> >
> > The tests are very slow on Windows in general. Please clarify: when you
> > say "very slow on Windows with meson", do you then mean "slower than
> > with a Makefile build"?
> 
> Thanks, I didn't know about that. This is my first time I've
> successfully built Git on Windows, so I can't compare build systems.
> (Makefile and CMake never worked for me.)
> 
> Out of curiosity, why are the integration tests so much slower on
> Windows than Linux? Is it the 10+ ms overhead of creating each new
> process? https://stackoverflow.com/q/47845/284795
> https://stackoverflow.com/questions/10710912/what-is-the-process-creation-overhead-in-windows

Our tests are primarily written in shell, which does a lot of fork and
exec.  These are native to and highly optimized on Unix, but Windows
doesn't have this functionality natively for Win32 programs and the
emulation is slow.  Part of that is because the Cygwin-based libc
actually has to emulate it nearly perfectly for software to work.  While
a partial emulation might work in _some_ cases, it would break in
others, so a lot of care and expense has to be provided in making it
work just so.

Windows _does_ have this functionality in the kernel and it is
reasonably performant, but it's only available in the Linux subsystem
and not in the Win32 subsystem.  The tests will probably be much faster
if you use WSL, although that wouldn't allow you to build a Windows
binary.

Dscho and others put a lot of effort into porting shell programs into C
to make them more performant on Windows (and elsewhere), since this has
been a problem for a long time.
-- 
brian m. carlson (they/them or he/him)
Toronto, Ontario, CA

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 263 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-02-02 23:13 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-01 22:56 "meson test" very slow on Windows M Hickford
2025-02-02  7:46 ` Johannes Sixt
2025-02-02 11:15   ` Patrick Steinhardt
2025-02-02 21:45   ` M Hickford
2025-02-02 23:13     ` brian m. carlson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).