From 0f3bbd666087a44dddc439f644c57eab2f1f3e1e Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Mon, 5 Jul 2010 08:20:06 +1200 Subject: Change how range lookups and removals are measured. Before, lookup_range would be measured for a range that extended from each key to the end of keyspace. That is ridiculously large. Now we generate ranges that are 10 in length, starting at each key. This is rather more realistic. --- speed-test | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'speed-test') diff --git a/speed-test b/speed-test index 09c63a3..7a845e7 100755 --- a/speed-test +++ b/speed-test @@ -83,6 +83,10 @@ def main(): # Create list of keys. keys = ['%0*d' % (key_size, i) for i in xrange(n)] + ranges = [] + range_len = 10 + for i in range(0, len(keys) - range_len): + ranges.append((keys[i], keys[i+range_len-1])) # Calibrate. looptime = measure(keys, lambda key: None, lambda: None) @@ -106,14 +110,13 @@ def main(): lambda: None) - looptime # Measure range lookups. - random.shuffle(keys) - max_key = max(keys) + random.shuffle(ranges) if do_profile: - profile(keys, lambda key: tree.lookup_range(key, max_key), + profile(ranges, lambda x: tree.lookup_range(x[0], x[1]), lambda: None, 'lookup-range') else: - lookup_range_time = measure(keys, - lambda key: tree.lookup_range(key, max_key), + lookup_range_time = measure(ranges, + lambda x: tree.lookup_range(x[0], x[1]), lambda: None) - looptime # Measure inserts into existing tree. @@ -136,12 +139,8 @@ def main(): # 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]), -- cgit v1.2.1