[darcs-users] pristine trees

David Roundy droundy at jdj5.mit.edu
Sat Dec 6 19:00:12 UTC 2003


On Sat, Dec 06, 2003 at 09:12:01AM -0800, Kevin Smith wrote:
> I recently tried an initial checkin of a website directory. Nothing huge,
> and no binaries. Immediately after doing the recursive 'add', I did a
> 'whatsnew'. darcs took over 6 minutes of 100% CPU to get the answer,
> whereas yarcs took only 2 seconds. Later, when I did the record in darcs,
> it only took a couple seconds.

Well, the first whatsnew will always be slower than the second, since the
first whatsnew has to read every file to see if its contents have changed.
This is because I don't create the copies of files in _darcs/current having
the same timestamp as the copy in the working dir.  6 minutes does sound
excessive, but a comparison with the --ignore-times flag would probably be
better.

Ironing out the efficency issues is something I'd like to get done, and
having yarcs to compare with sound very nice, since otherwise I just have
to guess (or wait for someone to notice a problem) which commands might
have O(n^2) (or worse) operations in them.  Haskell's laziness can make
this a bit hard to figure out from first principles, especially when I
don't necesarily know what n is (# of patches, # of primitive patches in a
single patch, number of files in a directory, etc).

> I'd like to tell you how long a get from abridgegame takes on my 
> machine, but right now the network and/or server seems to be the 
> bottleneck. I'm showing 0% CPU and 0% network for *long* stretches of 
> time while the verbose get is just sitting there waiting. At this rate, 
> I'll be thrilled if it only takes an hour :-(

Hmmmm.  Is your darcs compiled using libcurl? It sounds sort of like a
timeout problem of some sort, which libcurl would be more resisant to,
since it reuses a single connection.
-- 
David Roundy
http://www.abridgegame.org




More information about the darcs-users mailing list