
On Mon, 2008-08-11 at 13:57 +0100, Simon Marlow wrote:
- Performance. darcs2 regressed in performance for many operations we commonly use. I've submitted some measurements for some things, but it's pretty easy to find your own test cases: things like "darcs add", "darcs whatsnew", "darcs unrecord" are all slower than darcs 1. When simple operations take multiple seconds to complete, it really slows down your workflow.
Turns out that the reason for slow darcs whatsnew is ghc bug #2093 http://hackage.haskell.org/trac/ghc/ticket/2093 because getSymbolicLinkStatus is broken on 32bit systems in 6.8.2 it means that the 'stat' optimisation does not work so darcs has to read the actual contents of many files. Obviously that's very slow, especially over nfs. That explains why it worked for me in 0.2 seconds but for you took several seconds user time and (even more real time due to nfs). If you were using http://darcs.haskell.org/ghc-hashedrepo/ then there's a further explanation. According to the darcs devs that repo is: "in some weird intermediate (not final) hashed format that doesn't keep (original) filesizes in filenames. So in effect, it's running like with --ignore-times still" So I suggest we get rid of that old repo so as not to further the confusion. Duncan