[darcs-users] more bytestring numbers, bench.hs

Don Stewart dons at galois.com
Fri Oct 31 21:43:13 UTC 2008


Very nice Simon!

-- Don

simon:
> Here are the results of some simple tests using four different versions 
> of darcs on my ubuntu box. A full transcript is included so you can spot 
> any problems with my method and see how to run these tests yourself, and 
> add more.
> 
> Also, this demonstrates bench.hs, a new tool based on Eric's scripts. 
> This one uses haskell only and aims to be simple to use and 
> cross-platform. It can only run simple darcs commands though. (I 
> extended it to handle shell commands last night, but the gods were 
> angered and I lost that work. :/)
> 
> I can't run the actual bigzoo tests on this machine, unfortunately, as 
> it would mean shutting down my cpu-hogging web app servers for several 
> hours. I did shut them down during the tests below, and monitored with 
> top to be sure the box was otherwise quiet.
> 
> -Simon
> 
> 

> # darcs/bytestring benchmarking transcript
> 
> # 1. build four versions of darcs
> 
> $ ghc --version
> The Glorious Glasgow Haskell Compilation System, version 6.8.2
> $ ghc-pkg list bytestring
> /usr/local/lib/ghc-6.8.2/package.conf:
>     bytestring-0.9.0.1
> /home/simon/.ghc/x86_64-linux-6.8.2/package.conf:
> 
> $ darcs get --lazy http://darcs.net/unstable darcs-presprint
> $ darcs --repodir darcs-presprint obliterate -a --matches 'date "after 2008-10-25"' # inclusive
> 
> $ darcs get --lazy darcs-presprint darcs-presprint-no-bytestring
> $ (cd darcs-presprint-no-bytestring; autoconf; ./configure --disable-bytestring; make)
> 
> $ darcs get --lazy darcs-presprint darcs-presprint-bytestring-0.9.0.1
> $ (cd darcs-presprint-bytestring-0.9.0.1; autoconf; ./configure --enable-bytestring; make)
> 
> $ darcs get --partial http://darcs.haskell.org/bytestring
> $ (cd bytestring; runhaskell Setup.lhs configure; runhaskell Setup.lhs build; sudo runhaskell Setup.lhs install)
> $ sudo ghc-pkg hide bytestring-0.9.0.1
> $ ghc-pkg list bytestring
> /usr/local/lib/ghc-6.8.2/package.conf:
>     (bytestring-0.9.0.1), bytestring-0.9.1.4
> /home/simon/.ghc/x86_64-linux-6.8.2/package.conf:
> 
> $ darcs get --lazy darcs-presprint darcs-presprint-bytestring-0.9.1.4
> $ (cd darcs-presprint-bytestring-0.9.1.4; autoconf; ./configure --enable-bytestring; make)
> 
> $ darcs get --lazy http://code.haskell.org/darcs/sprint darcs-sprint-bytestring-0.9.1.4
> $ (cd darcs-sprint-bytestring-0.9.1.4; autoconf; ./configure --enable-bytestring; make)
>   # actually, had to build with cabal to work around a darcs changes hang
> 
> $ ln -s darcs-presprint-no-bytestring/darcs       darcsnobs
> $ ln -s darcs-presprint-bytestring-0.9.0.1/darcs  darcsbs0901
> $ ln -s darcs-presprint-bytestring-0.9.1.4/darcs  darcsbs0914
> $ ln -s darcs-sprint-bytestring-0.9.1.4/darcs     darcssprint
> $ ./darcsnobs --version; ./darcsbs0901 --version; ./darcsbs0914 --version; ./darcssprint --version
> 2.1.0 (+ 194 patches)
> 2.1.0 (+ 194 patches)
> 2.1.0 (+ 194 patches)
> 2.1.0 (+ 321 patches)
> 
> # 2. get latest bench.hs
> 
> $ darcs get --lazy http://joyful.com/repos/darcs-benchmark
> $ (cd darcs-benchmark; sudo cabal install tabular; ghc --make bench.hs)
> 
> # 3. run some simple tests in the darcs repo
> 
> $ cat - >bench.tests
> changes
> changes -s
> whatsnew -sl
> annotate Setup.hs
> 
> $ darcs-benchmark/bench bench.tests 3 /repos/darcs-stable ./darcsnobs ./darcsbs0901 ./darcsbs0914 ./darcssprint
> Running 4 tests 3 times in /repos/darcs-stable with 4 executables:
> 1: ./darcsnobs changes --repodir /repos/darcs-stable	[1.9s]
> 2: ./darcsnobs changes --repodir /repos/darcs-stable	[1.8s]
> 3: ./darcsnobs changes --repodir /repos/darcs-stable	[1.9s]
> 1: ./darcsbs0901 changes --repodir /repos/darcs-stable	[1.6s]
> 2: ./darcsbs0901 changes --repodir /repos/darcs-stable	[1.5s]
> 3: ./darcsbs0901 changes --repodir /repos/darcs-stable	[1.6s]
> 1: ./darcsbs0914 changes --repodir /repos/darcs-stable	[1.7s]
> 2: ./darcsbs0914 changes --repodir /repos/darcs-stable	[1.7s]
> 3: ./darcsbs0914 changes --repodir /repos/darcs-stable	[1.6s]
> 1: ./darcssprint changes --repodir /repos/darcs-stable	[1.6s]
> 2: ./darcssprint changes --repodir /repos/darcs-stable	[1.6s]
> 3: ./darcssprint changes --repodir /repos/darcs-stable	[1.7s]
> 1: ./darcsnobs changes -s --repodir /repos/darcs-stable	[10.0s]
> 2: ./darcsnobs changes -s --repodir /repos/darcs-stable	[9.9s]
> 3: ./darcsnobs changes -s --repodir /repos/darcs-stable	[10.1s]
> 1: ./darcsbs0901 changes -s --repodir /repos/darcs-stable	[7.8s]
> 2: ./darcsbs0901 changes -s --repodir /repos/darcs-stable	[7.6s]
> 3: ./darcsbs0901 changes -s --repodir /repos/darcs-stable	[7.7s]
> 1: ./darcsbs0914 changes -s --repodir /repos/darcs-stable	[7.9s]
> 2: ./darcsbs0914 changes -s --repodir /repos/darcs-stable	[7.8s]
> 3: ./darcsbs0914 changes -s --repodir /repos/darcs-stable	[7.4s]
> 1: ./darcssprint changes -s --repodir /repos/darcs-stable	[7.2s]
> 2: ./darcssprint changes -s --repodir /repos/darcs-stable	[7.5s]
> 3: ./darcssprint changes -s --repodir /repos/darcs-stable	[7.4s]
> 1: ./darcsnobs whatsnew -sl --repodir /repos/darcs-stable	[8.3s]
> 2: ./darcsnobs whatsnew -sl --repodir /repos/darcs-stable	[8.6s]
> 3: ./darcsnobs whatsnew -sl --repodir /repos/darcs-stable	[9.1s]
> 1: ./darcsbs0901 whatsnew -sl --repodir /repos/darcs-stable	[8.7s]
> 2: ./darcsbs0901 whatsnew -sl --repodir /repos/darcs-stable	[8.3s]
> 3: ./darcsbs0901 whatsnew -sl --repodir /repos/darcs-stable	[8.3s]
> 1: ./darcsbs0914 whatsnew -sl --repodir /repos/darcs-stable	[8.4s]
> 2: ./darcsbs0914 whatsnew -sl --repodir /repos/darcs-stable	[8.8s]
> 3: ./darcsbs0914 whatsnew -sl --repodir /repos/darcs-stable	[8.0s]
> 1: ./darcssprint whatsnew -sl --repodir /repos/darcs-stable	[8.6s]
> 2: ./darcssprint whatsnew -sl --repodir /repos/darcs-stable	[8.4s]
> 3: ./darcssprint whatsnew -sl --repodir /repos/darcs-stable	[8.2s]
> 1: ./darcsnobs annotate Setup.hs --repodir /repos/darcs-stable	[47.6s]
> 2: ./darcsnobs annotate Setup.hs --repodir /repos/darcs-stable	[47.3s]
> 3: ./darcsnobs annotate Setup.hs --repodir /repos/darcs-stable	[48.1s]
> 1: ./darcsbs0901 annotate Setup.hs --repodir /repos/darcs-stable	[38.8s]
> 2: ./darcsbs0901 annotate Setup.hs --repodir /repos/darcs-stable	[38.9s]
> 3: ./darcsbs0901 annotate Setup.hs --repodir /repos/darcs-stable	[38.8s]
> 1: ./darcsbs0914 annotate Setup.hs --repodir /repos/darcs-stable	[38.4s]
> 2: ./darcsbs0914 annotate Setup.hs --repodir /repos/darcs-stable	[38.6s]
> 3: ./darcsbs0914 annotate Setup.hs --repodir /repos/darcs-stable	[38.3s]
> 1: ./darcssprint annotate Setup.hs --repodir /repos/darcs-stable	[38.2s]
> 2: ./darcssprint annotate Setup.hs --repodir /repos/darcs-stable	[38.5s]
> 3: ./darcssprint annotate Setup.hs --repodir /repos/darcs-stable	[38.2s]
> 
> Summary (best iteration):
> 
>                   || ./darcsnobs | ./darcsbs0901 | ./darcsbs0914 | ./darcssprint
> ==================++=============+===============+===============+==============
>           changes ||         1.8 |           1.5 |           1.6 |           1.6
>        changes -s ||         9.9 |           7.6 |           7.4 |           7.2
>          whatsnew ||         0.1 |           0.1 |           0.1 |           0.1
>      whatsnew -sl ||         8.3 |           8.3 |           8.0 |           8.2
> annotate Setup.hs ||        47.3 |          38.8 |          38.3 |          38.2
> 

> _______________________________________________
> darcs-users mailing list
> darcs-users at darcs.net
> http://lists.osuosl.org/mailman/listinfo/darcs-users



More information about the darcs-users mailing list