aboutsummaryrefslogtreecommitdiffhomepage
path: root/performance-test/perf-test-lib.sh
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/perf-test-lib.sh
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/perf-test-lib.sh')
-rw-r--r--performance-test/perf-test-lib.sh28
1 files changed, 28 insertions, 0 deletions
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" \