diff options
author | Lars Wirzenius <liw@liw.fi> | 2010-07-03 20:18:44 +1200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2010-07-03 20:18:44 +1200 |
commit | aaa3ac7f9fc19b4c7e6c28990f3b481f1b6b06a6 (patch) | |
tree | de7eb381087392507193f63c8931a1f890a7cbbb /speed-test | |
parent | a05c4c158c390b496beb7f9dc04db1d4d89494f9 (diff) | |
download | larch-aaa3ac7f9fc19b4c7e6c28990f3b481f1b6b06a6.tar.gz |
Add remove_range to speed-test.
Diffstat (limited to 'speed-test')
-rwxr-xr-x | speed-test | 19 |
1 files changed, 19 insertions, 0 deletions
@@ -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: |