Hello again,as promised attached you will find a very simplistic non-blocking echo server that compiles on Linux and Cygwin.
The main objective is that you compile it and run on both environments.Of course that the same hardware is recommended in order to compare the results in a more accurate way.
After compile and run it, on a different machine you do something like: $ time cat big_file | nc –w 1 echo_server_ip_address port > dest_fileOn my test a big_file of 100 mb toke 22 seconds on Linux and 4 minutes on Cygwin.
This is my problem, why it takes so much more time on Cygwin? There is any obvious wrong thing I'm doing? It seems to be a select() problem. Thanks in advance, Pedro Inacio
echo_server.c
Description: Binary data
On 2006/03/11, at 18:16, Christopher Faylor wrote:
On Sat, Mar 11, 2006 at 06:04:37PM +0000, Pedro Inacio wrote:On 2006/03/11, at 15:40, Eric Blake wrote:I'm afraid that this is not a very good bug report, as you have notattempted to describe WHAT is too slow, and have not provided a simpletest case that compiles out of the box, with timing numbers on the testcase compared between Linux and Cygwin. Cygwin is only as fast as the underlying Windows system calls permit it to be. Also, cygwin is opensource. Go look at the source code to select() and you will see that it is very complex, since Windows does not provide good hooks for an efficient implementation. If you would like it to be faster, then consider writing a patch to cygwin that can speed it up.first of all this is not a bug report, but just trying to understand what might be the problem. If I knew what the problem is I was notasking if there is any known issue, a fix, or something. I've read thearchives before posting and there are some guys with similar problems but no answers.But we don't know what the actual problem *is*. What does "too slow"mean? select takes an extra twenty milliseconds under Cygwin? select doesn'trespond within 24 hours?You are apparently a programmer because you know about select(). Think of this from the point of view of someone reporting a problem with your software. Wouldn't you ask them for more details if the bug report wasmerely "Your program is slow?"I know that the select() function on windows is quite differentIt is different to the point of being nonexistent -- except for sockets.and not very handy. One thing is weird for sure, similar code works just fine on Unix but is not very performante on Windows.Whether it is a bug report or not, you haven't given enough details foranyone to comprehend what you are talking about. Your email seems to have been sent with an understanding that everyone will just automatically understand what you're talking about. That is not the case. You can't take shortcuts to describing a problem if you truly want help. You haven't provided enough information to even provide a WAG. 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/
-- 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/