summaryrefslogtreecommitdiff
path: root/speed-test
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2010-05-24 20:31:10 +1200
committerLars Wirzenius <liw@liw.fi>2010-05-24 20:31:10 +1200
commit99e2783489a7370b6765cf9a52e57182477ed9ea (patch)
treef9e015e0865711957c9226a0a4a7072fbefb332d /speed-test
parent9df72d609618ec372098937037b243c7c1e28d39 (diff)
downloadlarch-99e2783489a7370b6765cf9a52e57182477ed9ea.tar.gz
Measure commit time as well.
This is important since we have upload queues now.
Diffstat (limited to 'speed-test')
-rwxr-xr-xspeed-test19
1 files changed, 12 insertions, 7 deletions
diff --git a/speed-test b/speed-test
index 6e5475d..54e12d0 100755
--- a/speed-test
+++ b/speed-test
@@ -36,18 +36,20 @@ import time
import btree
-def measure(keys, func):
+def measure(keys, func, final):
start = time.clock()
for key in keys:
func(key)
+ final()
end = time.clock()
return end - start
-def profile(keys, func, basename):
+def profile(keys, func, final, basename):
def helper():
for key in keys:
func(key)
+ final()
globaldict = globals().copy()
localdict = locals().copy()
cProfile.runctx('helper()', globaldict, localdict, '%s.prof' % basename)
@@ -79,22 +81,25 @@ def main():
keys = ['%0*d' % (key_size, i) for i in xrange(n)]
# Calibrate.
- looptime = measure(keys, lambda key: None)
+ looptime = measure(keys, lambda key: None, lambda: None)
# Measure inserts.
random.shuffle(keys)
value = 'x' * value_size
if do_profile:
- profile(keys, lambda key: tree.insert(key, value), 'insert')
+ profile(keys, lambda key: tree.insert(key, value),
+ lambda: forest.commit(), 'insert')
else:
- insert_time = measure(keys, lambda key: tree.insert(key, value))
+ insert_time = measure(keys, lambda key: tree.insert(key, value),
+ lambda: forest.commit())
# Measure lookups.
random.shuffle(keys)
if do_profile:
- profile(keys, tree.lookup, 'lookup')
+ profile(keys, tree.lookup, lambda: None, 'lookup')
else:
- lookup_time = measure(keys, lambda key: tree.lookup(key)) - looptime
+ lookup_time = measure(keys, lambda key: tree.lookup(key),
+ lambda: None) - looptime
# Report
if do_profile: