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