April 8th 2010 06:51 pm

Tro^WMicrobenchmarks!

This blog is far too low in trolling. As a start, everyone knows that git is fast and svn is slow, but I wasn’t aware quite how shocking the difference was.

The test: committing a file that slowly increases in size, and a new file, 200 times.

git: 2 seconds.
darcs: 10 seconds.
bzr: 70 seconds.
svn: 200 seconds.

No comment.

Reproduction steps follow.

bzr 2.0.3 and git 1.5.6.5:
time ($CMD init && for i in $(seq 200); do echo $i >> foo && touch bar$i && $CMD add * &>/dev/null && $CMD commit -m "Whoosh"; done)

darcs (which, admittedly, took about 200 seconds to work out how to commit to) 2.0.2:
time ($CMD init && for i in $(seq 200); do echo $i >> foo && touch bar$i && $CMD add * &>/dev/null && $CMD record -a -Aa -m "Whoosh"; done)

svn 1.5.1:
rm -rf ../repo; svnadmin create ../repo && svn co file:///var/tmp/repo . && time (for i in $(seq 200); do echo $i >> foo && touch bar$i && $CMD add * && $CMD commit -m "Whoosh"; done)

3 Comments »

3 Responses to “Tro^WMicrobenchmarks!”

  1. monk on 08 Apr 2010 at 8:46 pm #

    darcs++ for speeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedos.

  2. Faux on 05 May 2010 at 9:00 pm #

    hg (oops, so insignificant I forgot it even existed) 1.0.1 (gogo debian stable): 20 seconds on the same machine.

  3. Faux on 10 Jun 2010 at 10:49 pm #

    Perforce 2009.2/238357: 8 seconds on the same machine.

    Oh god my eyes.

    rm -rf db.* depot/ journal && ./p4d & time (EDITOR=true p4 client; for i in $(seq 200); do if [ -f foo ]; then $CMD edit foo; else touch foo; $CMD add foo; fi; echo $i >> foo && touch bar$i && $CMD add bar$i &>/dev/null && $CMD submit -d "Whoosh"; done)

Trackback URI | Comments RSS

Leave a Reply

Anti-Spam Protection by WP-SpamFree

« | »