[darcs-devel] Why is darcs get so slow?
Anthony Towns
aj at azure.humbug.org.au
Wed Dec 29 22:58:49 PST 2004
Hi,
How come "darcs get --partial linux" is so slow? AFAICS, there aren't
even any mergers involved, which is the usual scapegoat? And it's not
/that/ big -- the checkpoint is 200MB uncompressed, and the patches
after that are only another 8MB. Yet darcs seems to chew up well over a
gig of RAM trying to process it, and seems to just sit and spin for ages
after getting the patches and before actually creating the working
directory or current/ (at which point I wander off, come back, decide
I'm bored and hit Ctrl-C).
Trying the profiler, I get:
COST CENTRE MODULE %time %alloc
hPutPS FastPackedString 39.7 36.8
taking up most of the time, invoked from write_checkpoint_patch in
get_cmd. But I'm not sure if that's accurate, or a profiling sampling
error - since the profiler seems to only notice about 7 minutes out of
20 minutes runtime.
And this is just a simple get -- it's just applying patches, no
commutation and evidently no mergers, so there's no real reason for it
to be much slower than just using tar/patch would be. Yet it is.
I don't get what's going on. Anyone know?
Is darcs trying to create current/ in RAM, and wasting lots of time
converting between string representations for no particular reason? Is
there some other time sink somewhere?
Cheers,
aj
More information about the darcs-devel
mailing list