[darcs-devel] New performance regression?
Simon Marlow
simonmarhaskell at gmail.com
Fri Feb 8 16:37:29 UTC 2008
David Roundy wrote:
> On Fri, Feb 08, 2008 at 10:03:52AM -0500, David Roundy wrote:
>> On Fri, Feb 08, 2008 at 10:53:57AM +0000, Simon Marlow wrote:
>>> You should be able to reproduce this pretty easily with a darcs2 ghc
>>> repository. I get no progress messages at all from pull for quite a while,
>>> and the 400-patch pull now takes over 100s where it previously took 10.
>>> Unpull is also taking about 100s on this machine, where previously it took 15.
>> Oddly enough in my quick darcs2-format test, I don't see the slowdown, but
>> on the hashed-format test I do. This may be some sort of hysteresis
>> effect. I'll try using your darcs2 repository, but first I want to debug
>> the darcs get slowness (or at least lack of progress). :(
>
> Okay, I've got a data point: darcs obliterate --last 580 -a is fast (well,
> the old speed) while darcs obliterate --from-tag ... -a is slow (where on
> my test case there are 580 patches after the tag). So it seems to be in
> the patch selection code.
Indeed, I can confirm that.
> On the other hand, I still see now slowness in pull! :(
It's very strange - certainly this morning I saw very long pull times in
both directions between my two repositories, and now I'm only seeing it in
one direction.
To summarise, with my two repos called A and B:
oblit in either A or B slow with --from-patch, fast with --last
pull A -> B fast
pull B -> A *slow*
Ah, but I have clues. repo A has some strange corruption. Spaces in
filenames have been replaced by (literally) \32.
$ \ls InstallShield
Component\32\Definitions README Setup\32\Files
decyg.pl Registry\32\Entries Shell\32\Objects
File\32\Groups runexe.c String\32\Tables
Glasgow\32\Haskell\32\Compiler.ipr Script\32\Files Text\32\Substitutions
this is what it should look like:
$ \ls InstallShield
Component Definitions README Setup Files
decyg.pl Registry Entries Shell Objects
File Groups runexe.c String Tables
Glasgow Haskell Compiler.ipr Script Files Text Substitutions
I have to go now so I can't investigate any more, but my best guess is that
this happened when I did 'darcs repair' yesterday using a darcs2 that was
built with bytestring support turned on.
Cheers,
Simon
More information about the darcs-devel
mailing list