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.*/
corpus/
notmuch.cache.*/

View file

@ -29,4 +29,4 @@ $(TXZFILE):
download-corpus:
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
uncache_database
add_email_corpus
print_header
time_run 'initial notmuch new' 'notmuch new'
cache_database
time_run 'second notmuch new' 'notmuch new'
time_run 'dump *' 'notmuch dump > tags.out'
time_run 'restore *' 'notmuch restore < tags.out'

View file

@ -35,6 +35,8 @@ then
exit 1
fi
DB_CACHE_DIR=${TEST_DIRECTORY}/notmuch.cache.$corpus_size
add_email_corpus ()
{
rm -rf ${MAIL_DIR}
@ -80,8 +82,34 @@ add_email_corpus ()
fi
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 () {
printf "[v%4s %6s] Wall(s)\tUsr(s)\tSys(s)\tRes(K)\tIn/Out(512B)\n" \