#!/bin/sh # # Copyright 2010 Lars Wirzenius # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . set -e die() { echo "$@" 1>&2 exit 1 } SEIVOT=seivot OBNAM_BRANCH="." LARCH_BRANCH="$HOME/larch/trunk" SIZES="100m/10m 1000m/100m 10000m/1000m 100000m/10000m" WIKI="$HOME/braawi.org" if [ $# -ge 1 ] then OBNAM_BRANCH="$1" shift fi if [ $# -ge 1 ] then LARCH_BRANCH="$1" shift fi if [ $# -ge 1 ] then SIZES="$1" shift fi if [ $# -ge 1 ] then WIKI="$1" shift fi if [ $# -ge 1 ] then SEIVOT="$1" shift fi if [ $# != 0 ] then die "Usage: $0 [obnam-branch [larch-branch [sizes [wiki-root [path/to/seivot]]]]]" fi if [ "x$TMPDIR" = x ] then die "TMPDIR is not set. You'll probably run out of space on /tmp..." fi GENERATIONS=5 OBNAM_REVNO=$(cd "$OBNAM_BRANCH" && bzr revno) LARCH_REVNO=$(cd "$LARCH_BRANCH" && bzr revno) for pair in $SIZES do size=$(echo "$pair" | sed 's:/.*::') inc=$(echo "$pair" | sed 's:.*/::') echo "Benchmark run for size $size inc $inc" results="$WIKI/obnam/benchmarks/$OBNAM_REVNO-$LARCH_REVNO" mkdir -p "$results" basename="$results/obnam-$size" data="$basename.seivot" desc="obnam (r$OBNAM_REVNO) and larch (r$LARCH_REVNO)" desc="$desc for live data size $size with $inc increments" $SEIVOT \ --output="$data" \ --description="$desc" \ --program="obnam+larch" \ --revision="$OBNAM_REVNO and $LARCH_REVNO" \ --start-size=$size \ --inc-size=$inc \ --generations=$GENERATIONS \ --fullcmd="env OBNAM_PROFILE=obnam.prof \ PYTHONPATH=$LARCH_BRANCH $OBNAM_BRANCH/obnam \ --log-level warning \ --log $basename-\$GEN.log --repository \$STORE \ backup \$DATA && \ cp obnam.prof $basename-\$GEN.prof && \ viewprof obnam.prof cumulative \ > $basename-\$GEN-cumulative.txt && \ viewprof obnam.prof time \ > $basename-\$GEN-time.txt && \ rm -f obnam.prof \ " \ measure (cd "$results/.." cat < "$OBNAM_REVNO-$LARCH_REVNO.mdwn" [[!meta title="Obnam r$OBNAM_REVNO with larch r$LARCH_REVNO"]] Benchmark result: Obnam r$OBNAM_REVNO with larch r$LARCH_REVNO ------------------------------------------------------- $(ls "$OBNAM_REVNO-$LARCH_REVNO"/* | awk '{ printf "* %s\n", $1, $1 }') eof ) done ./report-benchmark "$WIKI"/obnam/benchmarks/*/*.seivot \ > "$WIKI/obnam/benchmarkreport.mdwn"