David Roundy wrote:
On Wed, Dec 12, 2007 at 01:45:13PM +0000, Simon Marlow wrote:
"darcs changes" seems to have a big performance regression:
$ time darcs2 changes --last=10 >/dev/null
I killed it after 3 minutes of CPU time and the process had grown to 1.4Gb.
darcs1 does this in 0.05 seconds using 2Mb. Perhaps the repository is
corrupted somehow?
Okay, it turns out that it was indeed bad strictness causing the trouble.
For some reason, I had made the PatchInfoAnd data type strict in both its
components, which meant that every time we read a patch ID, we also needed
to parse the patch itself. Very foolish. There may be some further
regressions (I'm still running an optimize with profiling enabled. But
darcs changes --last 10 (with profiling running) now takes me just a bit
over a minute, and not too much memory (I don't quite recall).
Ok, that is certainly an improvement:
$ time darcs2 cha --last=10
...
60.60s real 59.83s user 0.21s system 99% darcs2 cha --last=10
But this is still 1000 times slower than darcs1 for the same operation.
Doesn't darcs changes just dump the contents of the inventory?
Cheers,
Simon
_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc