Thread (214 messages) flat view 214 messages, 10 authors, 2021-07-26

Re: [PATCH v3 24/34] t/perf/p7519: speed up test using "test-tool touch"

From: Jeff Hostetler <hidden>
Date: 2021-07-13 17:58:19


On 7/13/21 1:36 PM, Elijah Newren wrote:
On Tue, Jul 13, 2021 at 10:10 AM Jeff Hostetler [off-list ref] wrote:
quoted
On 7/1/21 7:09 PM, Ævar Arnfjörð Bjarmason wrote:
quoted
Did you try to replace this with some variant of:

      test_seq 1 10000 | xargs touch

Which (depending on your xargs version) would invoke "touch" commands
with however many argv items it thinks you can handle.
a quick test on my Windows machine shows that

         test_seq 1 10000 | xargs touch

takes 3.1 seconds.

just a simple

         test_seq 1 10000 >/dev/null

take 0.2 seconds.

using my test-tool helper cuts that time in half.
Yeah, test_seq is pretty bad; it's just a loop in shell.  Is there a
'seq' on windows, and does using it instead of test_seq make things
faster with Ævar's suggested command?
The Git for Windows SDK bash environment does have a /usr/bin/seq
which appears to be from GNU coreutils 8.32.  (This is different
from the version that I have on my Mac (which doesn't have a version
number).)

Using it:

	seq 1 10000 >/dev/null

takes 0.04 seconds instead of 0.2.

However, it doesn't help the touch.

	seq 1 10000 | xargs touch

still takes ~3.1 seconds.

FWIW, the xargs is clustering the 10,000 files into ~4 command lines,
so there is a little bit of Windows process overhead, but not that
much.

	seq 1 10000 | xargs wc -l | grep total
I'd really like to modify test_seq to use seq when it's available and
fall back to the looping-in-shell when we need to for various
platforms.

Maybe it'd even make sense to write a 'test-tool seq' and make
test_seq use that just so we can rip out that super lame shell
looping.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help