[darcs-devel] [issue987] fetching patches is way too slow

dmitry.kurochkin bugs at darcs.net
Thu Aug 14 17:24:04 UTC 2008


dmitry.kurochkin <dmitry.kurochkin at gmail.com> added the comment:

How to see if pipelining is actually working:

1. Run wireshark, set capture filter to smth like 'host darcs.net'.
2. Run darcs get or another curl/libwww using command.

You should see many HTTP packets in wireshark. Select one of them, right click,
follow tcp stream. New windows opens with HTTP traffic. Now there are few
possibilities:
- there is a single HTTP transaction - like HTTP GET/200 OK. Then tcp connection
is closed. This means that HTTP is not persistent and for each file a new tcp
connection is opened. This option is the slowest.
- there are many HTTP transactions, but they go one after another. Like:
  * > GET
  * < 200 OK
  * > GET
  * < 200 OK
  This means that HTTP connection is persistent but pipelining is not used.
Faster than option 1, should work in most cases.
- if there are many transactions and requests go one after another before
responses arrive, like:
  * > GET 1
  * > GET 2
  * < 200 OK 1
  * < 200 OK 2
  You are lucky :) Pipelining works. The fastest possible option.

Not sure if the above is a simple recipe but that is what I do. If you just need
to know if server supports HTTP 1.1 just look at HTTP request and response -
version is in the first line. You can copy request lines and use telnet to issue
request by hand.

Note that whether pipelining is used depends on how darcs requests files. If
darcs waits for the first file before requesting another, there would be no
pipelining obviously. So when looking at the HTTP stream scroll down to patch
downloads - you will not see pipelining near the beginning.

I guess this is not the best description. But it should become clear when you
see it yourself :)

Regards,
  Dmitry

----------
nosy: +darcs-devel

__________________________________
Darcs bug tracker <bugs at darcs.net>
<http://bugs.darcs.net/issue987>
__________________________________


More information about the darcs-devel mailing list