perf-test: add caching of xapian database

The caching and uncaching seem to be necessarily manual, as timing the
initial notmuch new is one of our goals with this suite.
This commit is contained in:
David Bremner 2012-12-03 08:48:53 -04:00
parent 74a883562b
commit ceaf5ca6c0
4 changed files with 35 additions and 1 deletions

View file

@ -1,2 +1,3 @@
tmp.*/ tmp.*/
corpus/ corpus/
notmuch.cache.*/

View file

@ -29,4 +29,4 @@ $(TXZFILE):
download-corpus: download-corpus:
wget -O ${TXZFILE} ${DEFAULT_URL} wget -O ${TXZFILE} ${DEFAULT_URL}
CLEAN := $(CLEAN) $(dir)/tmp.* $(dir)/corpus CLEAN := $(CLEAN) $(dir)/tmp.* $(dir)/corpus $(dir)/notmuch.cache.*

View file

@ -2,11 +2,16 @@
. ./perf-test-lib.sh . ./perf-test-lib.sh
uncache_database
add_email_corpus add_email_corpus
print_header print_header
time_run 'initial notmuch new' 'notmuch new' time_run 'initial notmuch new' 'notmuch new'
cache_database
time_run 'second notmuch new' 'notmuch new' time_run 'second notmuch new' 'notmuch new'
time_run 'dump *' 'notmuch dump > tags.out' time_run 'dump *' 'notmuch dump > tags.out'
time_run 'restore *' 'notmuch restore < tags.out' time_run 'restore *' 'notmuch restore < tags.out'

View file

@ -35,6 +35,8 @@ then
exit 1 exit 1
fi fi
DB_CACHE_DIR=${TEST_DIRECTORY}/notmuch.cache.$corpus_size
add_email_corpus () add_email_corpus ()
{ {
rm -rf ${MAIL_DIR} rm -rf ${MAIL_DIR}
@ -80,8 +82,34 @@ add_email_corpus ()
fi fi
cp -lr $MAIL_CORPUS $MAIL_DIR cp -lr $MAIL_CORPUS $MAIL_DIR
} }
time_start () {
add_email_corpus
print_header
if [ -d $DB_CACHE_DIR ]; then
cp -r $DB_CACHE_DIR ${MAIL_DIR}/.notmuch
else
time_run 'Initial notmuch new' "notmuch new"
cache_database
fi
}
cache_database () {
if [ -d $MAIL_DIR/.notmuch ]; then
cp -r $MAIL_DIR/.notmuch $DB_CACHE_DIR
else
echo "Warning: No database found to cache"
fi
}
uncache_database () {
rm -rf $DB_CACHE_DIR
}
print_header () { print_header () {
printf "[v%4s %6s] Wall(s)\tUsr(s)\tSys(s)\tRes(K)\tIn/Out(512B)\n" \ printf "[v%4s %6s] Wall(s)\tUsr(s)\tSys(s)\tRes(K)\tIn/Out(512B)\n" \