This is the mail archive of the cygwin mailing list for the Cygwin project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bash / cygwin process spawning (?) performance very slow

On 23/09/2015 10:52, wrote:
Hi all,

I noticed that doing simple loops in Bash takes unexpectedly long under Cygwin on a Windows XP 32 bit machine
(CYGWIN_NT-5.1 <machine> 2.2.1(0.289/5/3) 2015-08-20 11:40 i686 Cygwin)

I already followed the FAQ advice in trying to determine general causes, and made a 'shadow' copy of /etc/passwd as described.
My PATH does not contain references to network shares.

Still quite normal commands take a long time e.g.
time cat some-file | while read i;do echo $i;/bin/true;done

real 1m44.953s
user 0m9.599s
sys 1m36.865s

for a file of 167 lines. Process Explorer showed a CPU load of 20% on bash.exe, which was almost completely Kernel time.
Is such high Kernel load normal?

may be. forks are time consuming and your command is spending all the
time in fork

In addition, I suspect your Antivirus is further slowing down the things.

I know it's a bit like comparing apples to oranges, but I run the SAME command from the same disk, from within a Debian 7 486 Linux on VirtualBox (!) on the same machine, it gave
real 0m3.871s
user 0m0.160s
sys 0m3.292s

So even running in emulator, real/user/sys time are about 30/60/30 times faster. That's quite shocking.
Is this performance to be expected? That would make it an obvious choice to switch to VirtualBox on this machine.

I have much better results with my cygwin
also with a much longer file

$ wc -l cygcheck.out
5220 cygcheck.out

$ time cat cygcheck.out  | while read i;do grep text $i;done
real    0m0.288s
user    0m0.015s
sys     0m0.262s

$ time  awk '{if ($1 ~ /text/) print $1}' cygcheck.out
real    0m0.076s
user    0m0.015s
sys     0m0.046s


for every job there is the right tool


Problem reports:
Unsubscribe info:

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]