On 8/30/2010 7:16 AM, Sagi Ben-Akiva wrote:
2. a. Moving the call to wait_for_sigthread from dll_crt0_1 to _dll_crt0
which calls dll_crt0_1.
b. Deleting the call to WaitForSingleObject,
i.e. : "Don't worry about sync_startup"
I can confirm that the 2nd sub-change is the cause for the slowdown.
Just curious, has the performance characteristics of your test changed
with the lastest cygwin snapshot? The affected code has moved somewhat
since revision 1.288.
I wonder if we can move the call to wait_for_sigthread() further down in
dll_crt0_0() to improve performance via concurrency. Perhaps as far down
as right before we assign cygwin_finished_initializing to true?
At first brush, it looks like the slowdown is caused by the slow thread
startup. I wouldn't expect that Win64 thread start up to be any slower
than Win32 but perhaps this is due to Wow64. MSDN [1] does document that
there is some (small) extra thread allocation when on WOW64. Perhaps
some independent testing in this regard might be helpful.
Regards,
-Edward
1. http://msdn.microsoft.com/en-us/library/aa384219%28VS.85%29.aspx
--
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