[PATCH 2 of 2] hgext: add a new packed repository extension, packrepo

Bryan O'Sullivan bos at serpentine.com
Thu Aug 16 13:41:00 CDT 2012


On Wed, Aug 15, 2012 at 4:18 PM, Bryan O'Sullivan <bos at serpentine.com>wrote:

> On my machine:
>
>    - "cp -a" takes 8 seconds
>    - "tar | tar" takes about 4.5
>    - "tar | nc; nc | tar" takes about 5.5 (just making sure that the
>    network stack isn't at fault)
>    - "hg serve; hg clone --uncompressed -U" takes ... 35 seconds !?
>
> First observation: the files streamed are presented in a crazy random
> order [...]
>
> Just fixing this improved the performance of uncompressed clone to 25
> seconds, which is rather nice for a one-line change.
>

I wrote a tiny Python program that somewhat mimics the behaviour of
stream_out: http://pastebin.com/9ay1XPYH

Piped through netcat, this is just a little slower than the tar measuremet
above.

So it looks as though somewhere between the stream_out code and the bytes
hitting the wire on the receiver's side, something is terribly slow. I'm
investigating, but the code is rather convoluted.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20120816/d4b21e8b/attachment.html>


More information about the Mercurial-devel mailing list