[darcs-devel] [issue973] darcs whatsnew significantly slower on hashed format

gwern bugs at darcs.net
Thu Aug 14 17:34:40 UTC 2008


gwern <gwern0 at gmail.com> added the comment:

I recently converted a up-to-date GHC repo to darcs-2 format. Here's a timing
with the original:

gwern at craft:16593~/bin/ghc>time =darcs query repo                              
                                      [ 1:30PM]
          Type: darcs
          Show: Repo "/home/gwern/bin/ghc" [FixFilePath "/home/gwern/bin/ghc"
"",Verbose] (RF [["darcs-1.0"]]) (DarcsRepository (PlainPristine
"_darcs/pristine") thisrepo:/home/gwern/bin/ghc
                cache:/home/gwern/.darcs/cache
                )
        Format: darcs-1.0
          Root: /home/gwern/bin/ghc
      Pristine: PlainPristine "_darcs/pristine"
         Cache: thisrepo:/home/gwern/bin/ghc, cache:/home/gwern/.darcs/cache
boringfile Pref: .darcs-boring
Default Remote: http://darcs.haskell.org/ghc
   Num Patches: 19263
=darcs query repo  0.05s user 0.02s system 32% cpu 0.209 total

gwern at craft:16589~/bin/ghc>time =darcs whatsnew                                
                                      [ 1:29PM]
diffing dir...
binary ./WindowsInstaller/Glasgow\32\Haskell\32\Compiler.ism
rmfile ./WindowsInstaller/Glasgow\32\Haskell\32\Compiler.ism
=darcs whatsnew  0.04s user 0.01s system 44% cpu 0.107 total

Okay, that's good. No one can complain about a 0.1s whatsnew.

On the converted repo:

gwern at craft:16597~/bin/ghc-darcs2>time =darcs query repo                       
                                      [ 1:31PM]
          Type: darcs                                
          Show: Repo "/home/gwern/bin/ghc-darcs2" [FixFilePath
"/home/gwern/bin/ghc-darcs2" "",Verbose] (RF [["hashed"],["darcs-2"]])
(DarcsRepository HashedPristine thisrepo:/home/gwern/bin/ghc-darcs2
                cache:/home/gwern/.darcs/cache
                )
        Format: hashed, darcs-2
          Root: /home/gwern/bin/ghc-darcs2
      Pristine: HashedPristine
         Cache: thisrepo:/home/gwern/bin/ghc-darcs2, cache:/home/gwern/.darcs/cache
   Num Patches: 19263
=darcs query repo  0.21s user 0.02s system 72% cpu 0.310 total

gwern at craft:16600~/bin/ghc-darcs2>time =darcs whatsnew                         
                                      [ 1:31PM]
diffing dir...
binary ./WindowsInstaller/Glasgow\32\Haskell\32\Compiler.ism
rmfile ./WindowsInstaller/Glasgow\32\Haskell\32\Compiler.ism
=darcs whatsnew  0.10s user 0.03s system 55% cpu 0.236 total

I would be more concerned about this doubling of time, if the base weren't so
small. :)

The important thing is that I'm on a 64-bit Ubuntu Heron, so I avoid the
mentioned file bug. I don't think Windows has anything to do with it; so I agree
with Mornfall here.

Given this major performance regression - and also the bug with mixing -profile
and -threaded - telling people to avoid 6.8.2 in favor of 6.8.3 is starting to
sound really good to me (as opposed to doing funky FFI stuff and also
complicating the autoconf stuff even further).

__________________________________
Darcs bug tracker <bugs at darcs.net>
<http://bugs.darcs.net/issue973>
__________________________________


More information about the darcs-devel mailing list