From aaa3ac7f9fc19b4c7e6c28990f3b481f1b6b06a6 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sat, 3 Jul 2010 20:18:44 +1200 Subject: Add remove_range to speed-test. --- speed-test | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'speed-test') 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: -- cgit v1.2.1