Re: [PATCH] refs.c: add a function to sort a ref list, rather then sorting on add
- From
Julian Phillips <julian@quantumfyre.co.uk>
- Date
- Apr 17, 2007, 21:01 UTC
- Message-ID
- <Pine.LNX.4.64.0704172156590.9988@beast.quantumfyre.co.uk>
- In-Reply-To
- <20070417014307.12486.28930.julian@quantumfyre.co.uk>
On Tue, 17 Apr 2007, Julian Phillips wrote:
Show 22 quoted lines
> Rather than sorting the refs list while building it, sort in one go > after it is built using a merge sort. This has a large performance > boost with large numbers of refs. > > Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk> > --- > > Having got builtin fetch to the point of generating a correct FETCH_HEAD (for a certain path through the code at least), I revisted the speed issue I brought up a while back with the sorting of refs. > > Running fetch (builtin version) on a repo with >9000 refs which is up-to-date, using the old sort-on-add I get (best of 5, warm cache): > > real 0m4.351s > user 0m4.068s > sys 0m0.219s > > With this patch the same fetch gives (worst of 5, warm cache): > > real 0m2.196s > user 0m1.870s > sys 0m0.212s > > Since this is orthogonal to making fetch a builtin, I don't see that it needs to wait ...
In case anyone is curious, doing the same fetch with master (v1.5.1.1-135-gf948792):
master (best of 5, warm cache): real 0m33.962s user 0m23.992s sys 0m9.986s
master + patch (worst of 5, warm cache): real 0m20.821s user 0m10.390s sys 0m9.799s
-- Julian --- NANCY!! Why is everything RED?!