diff options
author | David Bremner <bremner@debian.org> | 2012-12-03 08:48:53 -0400 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2012-12-15 08:17:58 -0400 |
commit | ceaf5ca6c02e494eee5b9b9aa955459b3cd29471 (patch) | |
tree | ca8e9364e36de2d35c1d4e12d0e6d496e2d566fb /performance-test | |
parent | 74a883562b3e4593c75fa7625ff5cabab46a6466 (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/.gitignore | 1 | ||||
-rw-r--r-- | performance-test/Makefile.local | 2 | ||||
-rwxr-xr-x | performance-test/basic | 5 | ||||
-rw-r--r-- | performance-test/perf-test-lib.sh | 28 |
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" \ |