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: Slow/sluggish response ("system" task at 50%)


Larry Hall (Cygwin) wrote:
> Interesting.  I'm not sure why using Cygwin's 'make' would slow things
> down dramatically when running from a Cygwin terminal or shell.  I can

Note that cygwin's make is just plain slower that mingw's make to begin with. I'm not quite sure I can explain the ~25 times speed difference that Gene experiences but I can definitely vouch for at least a ~7 times speed difference (which I think it primarily due to forking).

Here's a speed test taken from an old thread on the cygwin mailing list. I did this test just right now with virtually no CPU usage on the same machine (WinXP SP2 x64, Intel Core i7 2.66 GHz):

(MINGW)
$ uname -a
MINGW32_NT-5.2 SEOUL 1.0.11(0.46/3/2) 2009-05-23 19:33 i686 Msys

$ time -p for ((i=1; i<100; i++)); do var=$(echo $i | tr [a-z] [A-Z]); done
real 1.51
user 0.58
sys 0.82

(CYGWIN 1.7)
$ uname -a
CYGWIN_NT-5.2-WOW64 seoul 1.7.0(0.210/5/3) 2009-06-18 12:51 i686 Cygwin

$ time -p for ((i=1; i<100; i++)); do var=$(echo $i | tr [a-z] [A-Z]); done
real 10.45
user 0.76
sys 1.53

Regards,
-Edward

Larry Hall (Cygwin) wrote:
Gene Smith wrote:

<snip>

Going back to beta-1.7 default install that ran fast I noticed that it was actually using a mingw32 version of "make" from winavr project and not the cygwin "make". The default cygwin install does not include make. When I load the cygwin make package and the build uses it (since cygwin puts its paths ahead of windows path) the build slows way down. If I remove make from cygwin's /bin it speeds back up (since using the mingw32 make).

The build referred to above uses a toolchain built for mingw32, not cygwin's gcc. So as long as make is also built for mingw32 the build is fast when run from cygwin terminal or dos window. With make being the cygwin version, the build is slow in all cases.

What does this mean? Am I doing something illegal mixing cygwin and mingw programs?

Interesting. I'm not sure why using Cygwin's 'make' would slow things down dramatically when running from a Cygwin terminal or shell. I can see there being some overhead if that's the only Cygwin process you're running, since there would be a Cygwin initialization cost to start 'make' if there were no other Cygwin processes running at the time. I very much doubt that this would account for the dramatic slow-down you've reported. So while certainly there's an issue here, it seems like the work-around you've found is viable. And it does make more sense than mixing and matching Cygwin and Mingw.

Are you able to reproduce this problem for any kind of package? It
might be helpful to know that building package or tarball 'foo' demonstrates
the problem.




--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


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