diff options
author | Lars Wirzenius <liw@liw.fi> | 2010-07-05 08:20:06 +1200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2010-07-05 08:20:06 +1200 |
commit | 0f3bbd666087a44dddc439f644c57eab2f1f3e1e (patch) | |
tree | 8632c13ac0855ed5935006c64fa6f5a668f5c102 /speed-test | |
parent | eecf0ef317568c421c1697e7cdf0fea926a61f12 (diff) | |
download | larch-0f3bbd666087a44dddc439f644c57eab2f1f3e1e.tar.gz |
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.
Diffstat (limited to 'speed-test')
-rwxr-xr-x | speed-test | 17 |
1 files changed, 8 insertions, 9 deletions
@@ -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]), |