aboutsummaryrefslogtreecommitdiffhomepage
path: root/performance-test
diff options
context:
space:
mode:
authorGravatar David Bremner <bremner@debian.org>2012-12-03 08:48:53 -0400
committerGravatar David Bremner <bremner@debian.org>2012-12-15 08:17:58 -0400
commitceaf5ca6c02e494eee5b9b9aa955459b3cd29471 (patch)
treeca8e9364e36de2d35c1d4e12d0e6d496e2d566fb /performance-test
parent74a883562b3e4593c75fa7625ff5cabab46a6466 (diff)
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.
Diffstat (limited to 'performance-test')
-rw-r--r--performance-test/.gitignore1
-rw-r--r--performance-test/Makefile.local2
-rwxr-xr-xperformance-test/basic5
-rw-r--r--performance-test/perf-test-lib.sh28
4 files changed, 35 insertions, 1 deletions
diff --git a/performance-test/.gitignore b/performance-test/.gitignore
index 796ed01e..6421a9ad 100644
--- a/performance-test/.gitignore
+++ b/performance-test/.gitignore
@@ -1,2 +1,3 @@
tmp.*/
corpus/
+notmuch.cache.*/
diff --git a/performance-test/Makefile.local b/performance-test/Makefile.local
index 63e4c3d1..3834e4d7 100644
--- a/performance-test/Makefile.local
+++ b/performance-test/Makefile.local
@@ -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.*
diff --git a/performance-test/basic b/performance-test/basic
index 9d015eec..41a7ff1a 100755
--- a/performance-test/basic
+++ b/performance-test/basic
@@ -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'
diff --git a/performance-test/perf-test-lib.sh b/performance-test/perf-test-lib.sh
index 53ef96da..564b6884 100644
--- a/performance-test/perf-test-lib.sh
+++ b/performance-test/perf-test-lib.sh
@@ -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" \