summaryrefslogtreecommitdiff
path: root/speed-test
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2010-07-03 20:18:44 +1200
committerLars Wirzenius <liw@liw.fi>2010-07-03 20:18:44 +1200
commitaaa3ac7f9fc19b4c7e6c28990f3b481f1b6b06a6 (patch)
treede7eb381087392507193f63c8931a1f890a7cbbb /speed-test
parenta05c4c158c390b496beb7f9dc04db1d4d89494f9 (diff)
downloadlarch-aaa3ac7f9fc19b4c7e6c28990f3b481f1b6b06a6.tar.gz
Add remove_range to speed-test.
Diffstat (limited to 'speed-test')
-rwxr-xr-xspeed-test19
1 files changed, 19 insertions, 0 deletions
diff --git a/speed-test b/speed-test
index 3a23eb9..09c63a3 100755
--- a/speed-test
+++ b/speed-test
@@ -134,6 +134,23 @@ def main():
remove_time = measure(keys, lambda key: tree.remove(key),
lambda: forest.commit())
+ # Measure remove_range. This requires building a new tree.
+ keys.sort()
+ ranges = []
+ range_len = 10
+ for key in keys:
+ tree.insert(key, value)
+ for i in range(0, len(keys), range_len):
+ ranges.append((keys[i], keys[i+range_len-1]))
+ random.shuffle(ranges)
+ if do_profile:
+ profile(ranges, lambda pair: tree.remove_range(pair[0], pair[1]),
+ lambda: forest.commit(), 'remove_range')
+ else:
+ remove_range_time = measure(ranges,
+ lambda x: tree.remove_range(x[0], x[1]),
+ lambda: forest.commit())
+
# Report
if do_profile:
print 'View *.prof with ./viewprof for profiling results.'
@@ -145,6 +162,8 @@ def main():
n/lookup_range_time)
print 'insert2 : %5.3f s (%.1f/s)' % (insert2_time, n/insert2_time)
print 'remove : %5.3f s (%.1f/s)' % (remove_time, n/remove_time)
+ print 'remove_range: %5.3f s (%.1f/s)' % (remove_range_time,
+ n/remove_range_time)
# Clean up
if location: