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: Serious performance problems (Gerrit/Danny please comment)


On Sat, May 28, 2005 at 08:01:52PM -0400, Christopher Faylor wrote:
>cygspd runs in 25 - 26 seconds.  cygspd-mingw runs in 2 seconds.  If I
>create dummy versions of pthread_{getspecific,setspecific,mutex_lock,mutex_unlock}
>then the cygwin version is about a second slower than the mingw version.

Some more data points:

Unless I screwed up something in the above example, pthread_setspecific
is called 23,360,006 times in the test case.  pthread_getspecific is
called 46,720,011 times.  The cygwin signal handling code adds a 16.1
microsecond penalty (on my system) for functions it thinks are not
interruptible (most functions in cygwin fall into this category).  I'm a
little tired right now so maybe I've got the numbers wrong, but it seems
like just the cygwin signal handling penalty is enough to account for
the discrepancy -- which is pretty much what I expected.

I have an idea about how to work around this problem but I have to think
about how dangerous it might be.  Basically removing the signal handling
wrapper around pthread_getspecific and pthread_setspecific.  That may
work ok but I have to think about worst case scenarios.

cgf

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


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