summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2011-07-18 22:56:08 +0100
committerLars Wirzenius <liw@liw.fi>2011-07-18 22:56:08 +0100
commitfb7c5d3dd14d7352ab06987ab62bcb149558f7e8 (patch)
tree91866d7aa9af64e8d503827e4f0da6a0b2e52d81
parentc18199bf960e79962678660ec097630bf15dc6fb (diff)
parent798907adbd1a00ab1f327e7bf680794c219fec3c (diff)
downloadseivot-fb7c5d3dd14d7352ab06987ab62bcb149558f7e8.tar.gz
Add feature to run benchmarks on existing directory, not generated data.
-rwxr-xr-xseivot22
1 files changed, 20 insertions, 2 deletions
diff --git a/seivot b/seivot
index fdaf48d..26f9e53 100755
--- a/seivot
+++ b/seivot
@@ -324,6 +324,9 @@ class Seivot(cliapp.Application):
'(%default)',
metavar='SIZE',
default=1024)
+ self.settings.string(['use-existing'],
+ 'use exiting DIR for initial generation',
+ metavar='DIR')
self.settings.bytesize(['file-size'], 'size of files to create',
default=16*1024)
self.settings.string(['obnam-branch'],
@@ -377,8 +380,15 @@ class Seivot(cliapp.Application):
self.report = Report(prog)
- self.generate_live_data(self.live_data, self.settings['initial-data'])
- self.measure(prog.backup, 0, self.settings['initial-data'])
+ if self.settings['use-existing']:
+ os.rmdir(self.live_data)
+ shutil.copytree(self.settings['use-existing'], self.live_data,
+ symlinks=True)
+ amount = self.file_sizes(self.live_data)
+ else:
+ amount = self.settings['initial-data']
+ self.generate_live_data(self.live_data, amount)
+ self.measure(prog.backup, 0, amount)
for i in range(1, generations):
self.generate_live_data(self.live_data,
@@ -408,6 +418,14 @@ class Seivot(cliapp.Application):
runcmd(['genbackupdata', where, '--create', str(size),
'--file-size', str(self.settings['file-size'])])
+ def file_sizes(self, dirname):
+ bytes = 0
+ for dirname, subdirs, basenames in os.walk(dirname):
+ for filename in [os.path.join(dirname, x) for x in basenames]:
+ if os.path.isfile(filename):
+ bytes += os.path.getsize(filename)
+ return bytes
+
def measure(self, func, nth_gen, new_data, **kwargs):
logging.info('Measuring %s gen %d' % (func.__name__, nth_gen))
print 'Measuring %s generation %s' % (func.__name__, nth_gen)