This is the mail archive of the
mailing list for the Cygwin project.
Re: select() too slow
On Tue, Mar 14, 2006 at 09:42:25PM +0000, Pedro Inacio wrote:
>I'm goin to explain everything step by step in order to be now doubts.
>One computer with dual boot, Linux in one partition and Windows with
>Cygwin installed on another partition.
>Boot on Linux compile echo_server.c, run it and it will listen on tcp
>Imagine that the IP address of the system is 192.168.1.1
>Go to some other Linux system on the network, create or choose some
>"big_file" you have there and run:
>time cat big_file | nc -w 1 192.168.1.1 12345 > /tmp/output
>Ok, before w is a dash, it's a matter of charset encoding.
>What this command will do is it will cat the big_file and send data
>via nc (netcat) to the system where the echo_server is running, then
>the echo_server receives the data and sends it back. When done you
>will see how much time that process toke. The value 1 after w is to
>disconnect nc after 1 second of timeout.
>This process, sending a 100 MB big_file takes 22 seconds on Linux.
>Now boot on Windows, and imagine that the IP address is 192.168.1.1,
>run Cygwin compile echo_server.c, run it and do the same.
>The same process takes now 4 minutes sending the same big_file.
I don't have any 100MB files sitting around but when I tried this on a
14MB file, I find that cygwin is about 2X slower, not an order of
magnitude slower. Taking away the pipe and using regular file redirection
makes things a little faster on cygwin.
So, I can't explain why you are seeing such extreme slowdowns. I am using
the equivalent of a snapshot in my tests, however. Maybe that's the
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html