From: | Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Andrew Dunstan <andrew(at)dunslane(dot)net>, Melih Mutlu <m(dot)melihmutlu(at)gmail(dot)com>, pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Mingw task for Cirrus CI |
Date: | 2022-04-09 10:37:05 |
Message-ID: | 202204091037.nwnizruuylh4@alvherre.pgsql |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On 2022-Apr-08, Andres Freund wrote:
> I just realized that the second find is pretty expensive compared to the
> first.
>
> time find "$sourcetree" -type d \( \( -name CVS -prune \) -o \( -name .git -prune \) -o -print \) | grep -v "$sourcetree/doc/src/sgml/\+" > /dev/null
> real 0m0.019s
> user 0m0.008s
> sys 0m0.017s
>
> second:
> time find "$sourcetree" -name Makefile -print -o -name GNUmakefile -print | grep -v "$sourcetree/doc/src/sgml/images/" > /dev/null
>
> real 0m0.118s
> user 0m0.071s
> sys 0m0.053s
Hmm, ISTM that time can be reduced a bit with -prune,
time find "$sourcetree" \( -name .git -prune \) -o -name Makefile -print -o -name GNUmakefile -print | grep -v "$sourcetree/doc/src/sgml/images/" > /dev/null
I thought it might work to do away with the grep and use find's -path
instead to prune that subdir, but "time" shows almost no difference for
me:
time find "$sourcetree" \( -name .git -prune \) -o \( -path '*doc/src/sgml/images' -prune \) -o -name Makefile -print -o -name GNUmakefile -print > /dev/null
Maybe find's -path is equally expensive. Still, that seems a good
change anyway. (The times are lower in my system than those you show.)
> It think we could just obsolete the second find, by checking for the existence
> of Makefile / GNUmakefile in the first loop...
Hmm, if that's going to require one more shell command per dir, it
sounds more expensive. It's worth trying, I guess.
> The invocation of ln -s is quite measurable - looks like it's mostly the
> process startup overhead (on linux, at least). Doing a ln --version > /dev/null
> each iteration takes about the same time as actually creating the symlinks.
Is this running with some locale settings enabled? Maybe we can save
some time by making sure we're under LC_ALL=C or something like that, to
avoid searching for translation files.
--
Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/
"Las navajas y los monos deben estar siempre distantes" (Germán Poo)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2022-04-09 10:44:39 | Re: Commitfest wrapup |
Previous Message | Christoph Berg | 2022-04-09 09:21:51 | Re: How about a psql backslash command to show GUCs? |