On 7/13/21 2:07 PM, Junio C Hamano wrote:
Jeff Hostetler <git@xxxxxxxxxxxxxxxxx> writes:
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.
So what lame in this picture is not shell, or process overhead, but
I/O performance.
I've seen some noises about Windows file creation performance raised
as an issue when doing initial checkout followed by "git clone", and
an idea floated to create a bunch of open file handles for writing
in threads when checkout (really the caller that repeatedly calls
entry.c:write_entry() by iterating the in-core index) starts, and
write out the contents in parallel, as a workaround. When I heard
it, I somehow thought it was meant as a not-so-funny joke, but from
the sounds of it, the I/O performance may be so horrible to require
such a hack to be usable there. Sigh...
Yes, there are some things here (that I believe to be I/O related)
on Windows that I want to look at when I wrap up FSMonitor. And
yes, some of them sound pretty stupid.
Jeff