Odd behaviour while cloning (redundant seeks?)
Matt Mackall
mpm at selenic.com
Fri May 8 14:13:20 CDT 2009
On Tue, May 05, 2009 at 09:58:22PM -0400, Greg Ward wrote:
> On Tue, May 5, 2009 at 6:02 PM, Matt Mackall <mpm at selenic.com> wrote:
> > That points to something in the lazyparser code that we use on large
> > indexes, which is rather suboptimal. How big is your 00changelog.i
> > file?
>
> About 6 MB. More precisely:
>
> $ ls -l .hg/store
> total 346540
> -rw-r--r-- 3 gward gward 22770915 May 1 12:26 00changelog.d
> -rw-r--r-- 3 gward gward 6462144 May 1 12:26 00changelog.i
> -rw-r--r-- 3 gward gward 316882850 May 1 12:26 00manifest.d
> -rw-r--r-- 3 gward gward 6462144 May 1 12:26 00manifest.i
> drwxr-xr-x 26 gward gward 4096 May 5 15:15 data
> drwxr-xr-x 19 gward gward 4096 May 5 15:15 dh
> -rw-r--r-- 3 gward gward 1862055 May 1 12:25 fncache
>
> (The whole repo is 830 MB, ~100k changesets, ~26k files.)
>
> > Poking at it a bit, I see there are a lot of avoidable seeks when
> > doing a clone. I've killed about half of them, but I haven't looked
> > into the lazyparser code yet.
>
> Cool, thanks! Anything I can test? Or should I just wait for your
> patches to be merged into crew?
I've pushed the changest to tip. Syscall usage change looks like this:
stable mpm
30450 4862 lseek
11456 11521 open
1498 1503 stat
2465 2464 lstat
16916 17022 fstat
11843 11195 read
24014 10625 write
Someone should probably go and beat up the path auditing code not to
suck next.
--
Mathematics is the supreme nostalgia of our time.
More information about the Mercurial-devel
mailing list