This is the mail archive of the
mailing list for the Cygwin project.
Severe performance degradation of writev
- From: jojelino <jojelino at gmail dot com>
- To: cygwin at cygwin dot com
- Date: Mon, 07 Jul 2014 07:28:12 +0900
- Subject: Severe performance degradation of writev
- Authentication-results: sourceware.org; auth=none
2008-07-27 Corinna Vinschen <email@example.com>
* fhandler_socket.cc (fhandler_socket::send_internal): Send
then 64K bytes at once. For blocking sockets, loop until entire
has been sent or an error occurs.
(fhandler_socket::sendto): Drop code which sends on 64K bytes.
This commit added workaround for KB823764. but it has brought another
performance issue when writev sends <64k of data.
Execute following command shows the problem.
svnrdump dump --incremental http://svn.apache.org/repos/asf/subversion
cygwin does split writev request into many WSASendTo call and serf
library sets TCP_NODELAY for socket it uses, a WSASendTo call
corresponds to a tcp packet.
You can see that http header is sent being splitted when you executed
above command. Whereas win32 backend of apr library doesn't exhibit such
behavior by using send call.
Problem reports: http://cygwin.com/problems.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple