[PATCH] Large clone chewing CPU

Eric Hopper hopper at omnifarious.org
Thu Sep 1 16:47:38 CDT 2005

On Thu, Sep 01, 2005 at 12:02:53PM -0700, Bryan O'Sullivan wrote:
> On Wed, 2005-08-31 at 20:27 -0700, Eric Hopper wrote:
> > The code I put in is a little more complicated than I'd like, but the
> > last patch adds some comments that I hope explain things a bit.
> Please try my change instead, at http://hg.serpentine.com/mercurial/bos
> I've tested it both locally and over http, and it seems to be fine.

I adapted your patch to 0.6c to obtain a fair comparison.  And I changed
my test to run the clone of a 100mbit link instead of a 1.5mbit one.

In a preliminary test, things look much better than they do in stock
0.6c with your patch.  But it still pegs the CPU on a 100mbit link.  My
patch does not come anywhere close to pegging the CPU on a 100mbit link.

I'm going to run some more detailed tests and post both the patches and
the timing results.

I will also try to make some changes to your appendable string class in
an effort to avoid pegging the CPU.

Lastly, it's definitely possible for me to adapt my changes into a more
general buffering class that can also easily deal with filtering the
data through zlib like the most recent code in your repository does.

I'll do both things and run timing tests and see.

Have fun (if at all possible),
"It does me no injury for my neighbor to say there are twenty gods or no God.
It neither picks my pocket nor breaks my leg."  --- Thomas Jefferson
"Go to Heaven for the climate, Hell for the company."  -- Mark Twain
-- Eric Hopper (hopper at omnifarious.org  http://www.omnifarious.org/~hopper) --
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.selenic.com/pipermail/mercurial/attachments/20050901/63eac792/attachment.pgp

More information about the Mercurial mailing list