From 8df05df7dec1c0957bd69b54e344ec023848133a Mon Sep 17 00:00:00 2001 From: david Date: Thu, 6 Dec 2012 23:01:43 +2000 Subject: [PATCH] [Patch v2 06/11] perf-test: add caching of xapian database --- 65/e2e2caf44653604b6613c4ae392346a7a39a94 | 144 ++++++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 65/e2e2caf44653604b6613c4ae392346a7a39a94 diff --git a/65/e2e2caf44653604b6613c4ae392346a7a39a94 b/65/e2e2caf44653604b6613c4ae392346a7a39a94 new file mode 100644 index 000000000..d87dff303 --- /dev/null +++ b/65/e2e2caf44653604b6613c4ae392346a7a39a94 @@ -0,0 +1,144 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id 8A69D431E82 + for ; Wed, 5 Dec 2012 19:02:13 -0800 (PST) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: 0 +X-Spam-Level: +X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] + autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id PrO1-KeYWGZR for ; + Wed, 5 Dec 2012 19:02:11 -0800 (PST) +Received: from tesseract.cs.unb.ca (tesseract.cs.unb.ca [131.202.240.238]) + (using TLSv1 with cipher AES256-SHA (256/256 bits)) + (No client certificate requested) + by olra.theworths.org (Postfix) with ESMTPS id 82A52431FAE + for ; Wed, 5 Dec 2012 19:02:11 -0800 (PST) +Received: from fctnnbsc30w-142167090129.dhcp-dynamic.fibreop.nb.bellaliant.net + ([142.167.90.129] helo=zancas.localnet) + by tesseract.cs.unb.ca with esmtpsa + (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) + (envelope-from ) + id 1TgRiy-0002D0-UK; Wed, 05 Dec 2012 23:02:09 -0400 +Received: from bremner by zancas.localnet with local (Exim 4.80) + (envelope-from ) + id 1TgRit-0001Yn-Ec; Wed, 05 Dec 2012 23:02:03 -0400 +From: david@tethera.net +To: notmuch@notmuchmail.org +Subject: [Patch v2 06/11] perf-test: add caching of xapian database +Date: Wed, 5 Dec 2012 23:01:43 -0400 +Message-Id: <1354762908-5788-7-git-send-email-david@tethera.net> +X-Mailer: git-send-email 1.7.10.4 +In-Reply-To: <1354762908-5788-1-git-send-email-david@tethera.net> +References: <1354762908-5788-1-git-send-email-david@tethera.net> +X-Spam_bar: - +Cc: David Bremner +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Thu, 06 Dec 2012 03:02:13 -0000 + +From: David Bremner + +The caching and uncaching seem to be necessarily manual, as timing the +initial notmuch new is one of our goals with this suite. +--- + performance-test/.gitignore | 1 + + performance-test/Makefile.local | 2 +- + performance-test/basic | 5 +++++ + performance-test/perf-test-lib.sh | 17 +++++++++++++++++ + 4 files changed, 24 insertions(+), 1 deletion(-) + +diff --git a/performance-test/.gitignore b/performance-test/.gitignore +index 796ed01..6421a9a 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 63e4c3d..3834e4d 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 9d015ee..41a7ff1 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 0c10718..0f9796d 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,23 @@ add_email_corpus () + fi + + cp -lr $MAIL_CORPUS $MAIL_DIR ++ ++ if [ -d $DB_CACHE_DIR ]; then ++ cp -r $DB_CACHE_DIR ${MAIL_DIR}/.notmuch ++ 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" \ +-- +1.7.10.4 + -- 2.26.2